vuedit-image-editor 0.1.0 → 0.2.1
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 +222 -0
- package/dist/style.css +1 -0
- package/dist/types/components/VueditImageEditor.vue.d.ts +91 -0
- package/dist/types/components/VueditImageEditorModal.vue.d.ts +71 -0
- package/dist/types/components/canvas/FabricCanvas.vue.d.ts +5 -0
- package/dist/types/components/panels/CropPanel.vue.d.ts +32 -0
- package/dist/types/components/panels/DrawPanel.vue.d.ts +24 -0
- package/dist/types/components/panels/FilterPanel.vue.d.ts +28 -0
- package/dist/types/components/panels/ResizePanel.vue.d.ts +35 -0
- package/dist/types/components/panels/RotateFlipPanel.vue.d.ts +31 -0
- package/dist/types/components/panels/ShapePanel.vue.d.ts +26 -0
- package/dist/types/components/panels/TextPanel.vue.d.ts +26 -0
- package/dist/types/components/shared/ColorPicker.vue.d.ts +21 -0
- package/dist/types/components/shared/ConfirmBar.vue.d.ts +23 -0
- package/dist/types/components/shared/RangeSlider.vue.d.ts +27 -0
- package/dist/types/components/toolbar/EditorToolbar.vue.d.ts +26 -0
- package/dist/types/components/toolbar/ToolButton.vue.d.ts +30 -0
- package/dist/types/composables/useCrop.d.ts +18 -0
- package/dist/types/composables/useDraw.d.ts +12 -0
- package/dist/types/composables/useEditorState.d.ts +7 -0
- package/dist/types/composables/useFabricCanvas.d.ts +16 -0
- package/dist/types/composables/useFilters.d.ts +18 -0
- package/dist/types/composables/useHistory.d.ts +11 -0
- package/dist/types/composables/useResize.d.ts +16 -0
- package/dist/types/composables/useRotateFlip.d.ts +12 -0
- package/dist/types/composables/useShapes.d.ts +12 -0
- package/dist/types/composables/useText.d.ts +16 -0
- package/dist/types/composables/useZoom.d.ts +11 -0
- package/dist/types/i18n/ar.d.ts +54 -0
- package/dist/types/i18n/en.d.ts +55 -0
- package/dist/types/i18n/index.d.ts +7 -0
- package/dist/types/icons/CropIcon.vue.d.ts +2 -0
- package/dist/types/icons/DrawIcon.vue.d.ts +2 -0
- package/dist/types/icons/FilterIcon.vue.d.ts +2 -0
- package/dist/types/icons/FlipHIcon.vue.d.ts +2 -0
- package/dist/types/icons/FlipVIcon.vue.d.ts +2 -0
- package/dist/types/icons/RedoIcon.vue.d.ts +2 -0
- package/dist/types/icons/ResizeIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateLeftIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateRightIcon.vue.d.ts +2 -0
- package/dist/types/icons/ShapeIcon.vue.d.ts +2 -0
- package/dist/types/icons/TextIcon.vue.d.ts +2 -0
- package/dist/types/icons/UndoIcon.vue.d.ts +2 -0
- package/dist/types/icons/ZoomInIcon.vue.d.ts +2 -0
- package/dist/types/icons/ZoomOutIcon.vue.d.ts +2 -0
- package/dist/types/icons/index.d.ts +15 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts +43 -0
- package/dist/vuedit-image-editor.es.js +8898 -3298
- package/dist/vuedit-image-editor.es.js.map +1 -1
- package/dist/vuedit-image-editor.umd.js +504 -35
- package/dist/vuedit-image-editor.umd.js.map +1 -1
- package/package.json +50 -31
- package/LICENSE +0 -21
- package/dist/index.d.ts +0 -663
- package/dist/vuedit-image-editor.css +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# vuedit-image-editor
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/vuedit-image-editor)
|
|
4
|
+
[](https://github.com/Abdelrahman-Mahmoud-Dev/vuedit-image-editor/blob/main/LICENSE)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
|
|
7
|
+
A feature-rich, Pintura-like image editor component for Vue 3, powered by Fabric.js.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **Crop** - Free crop and predefined aspect ratios (1:1, 4:3, 16:9, 3:2)
|
|
12
|
+
- **Rotate & Flip** - 90° rotations, horizontal/vertical flip, custom angle rotation
|
|
13
|
+
- **Filters** - Brightness, contrast, saturation, exposure, blur, grayscale, sepia, invert
|
|
14
|
+
- **Text** - Add text with font family, size, color, bold/italic, alignment options
|
|
15
|
+
- **Draw** - Freehand drawing with configurable brush size, color, and opacity
|
|
16
|
+
- **Shapes** - Rectangle, circle, arrow, and line with stroke/fill customization
|
|
17
|
+
- **Resize** - Change dimensions with optional aspect ratio lock
|
|
18
|
+
- **Zoom** - Zoom in/out with mouse wheel support
|
|
19
|
+
- **Undo/Redo** - Full history with keyboard shortcuts
|
|
20
|
+
- **i18n** - Built-in English and Arabic, extensible to any language
|
|
21
|
+
- **RTL Support** - Automatic RTL layout for Arabic and similar locales
|
|
22
|
+
- **Two modes** - Inline editor and modal editor components
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install vuedit-image-editor
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Peer dependency:** Vue 3.2+
|
|
31
|
+
|
|
32
|
+
## Quick Start
|
|
33
|
+
|
|
34
|
+
### Inline Editor
|
|
35
|
+
|
|
36
|
+
```vue
|
|
37
|
+
<script setup>
|
|
38
|
+
import { ref } from 'vue'
|
|
39
|
+
import { VueditImageEditor } from 'vuedit-image-editor'
|
|
40
|
+
import 'vuedit-image-editor/dist/style.css'
|
|
41
|
+
|
|
42
|
+
const imageUrl = ref('https://example.com/photo.jpg')
|
|
43
|
+
|
|
44
|
+
function onSave(result) {
|
|
45
|
+
// result is a File by default
|
|
46
|
+
console.log('Saved:', result.name, result.size)
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<div style="height: 600px;">
|
|
52
|
+
<VueditImageEditor
|
|
53
|
+
:src="imageUrl"
|
|
54
|
+
output-format="file"
|
|
55
|
+
@save="onSave"
|
|
56
|
+
@cancel="() => console.log('Cancelled')"
|
|
57
|
+
@error="(e) => console.error(e)"
|
|
58
|
+
/>
|
|
59
|
+
</div>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Modal Editor
|
|
64
|
+
|
|
65
|
+
```vue
|
|
66
|
+
<script setup>
|
|
67
|
+
import { ref } from 'vue'
|
|
68
|
+
import { VueditImageEditorModal } from 'vuedit-image-editor'
|
|
69
|
+
import 'vuedit-image-editor/dist/style.css'
|
|
70
|
+
|
|
71
|
+
const modalOpen = ref(false)
|
|
72
|
+
|
|
73
|
+
function onSave(result) {
|
|
74
|
+
console.log('Saved:', result)
|
|
75
|
+
modalOpen.value = false
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<template>
|
|
80
|
+
<button @click="modalOpen = true">Edit Image</button>
|
|
81
|
+
|
|
82
|
+
<VueditImageEditorModal
|
|
83
|
+
:open="modalOpen"
|
|
84
|
+
src="https://example.com/photo.jpg"
|
|
85
|
+
output-format="file"
|
|
86
|
+
@save="onSave"
|
|
87
|
+
@close="modalOpen = false"
|
|
88
|
+
/>
|
|
89
|
+
</template>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Props
|
|
93
|
+
|
|
94
|
+
### VueditImageEditor
|
|
95
|
+
|
|
96
|
+
| Prop | Type | Default | Description |
|
|
97
|
+
|------|------|---------|-------------|
|
|
98
|
+
| `src` | `string \| File \| Blob` | **required** | Image source |
|
|
99
|
+
| `outputFormat` | `'file' \| 'blob' \| 'dataurl' \| 'canvas'` | `'file'` | Export format |
|
|
100
|
+
| `outputMimeType` | `string` | `'image/png'` | Output MIME type |
|
|
101
|
+
| `outputQuality` | `number` | `0.92` | JPEG/WebP quality (0-1) |
|
|
102
|
+
| `outputFileName` | `string` | `'edited-image'` | Output file name |
|
|
103
|
+
| `tools` | `ToolType[]` | All tools | Which tools to show |
|
|
104
|
+
| `cropAspectRatios` | `CropAspectRatio[]` | Free, 1:1, 4:3, 16:9, 3:2 | Crop ratio options |
|
|
105
|
+
| `locale` | `string \| VueditTranslations` | `'en'` | Language or custom translations |
|
|
106
|
+
| `dir` | `'ltr' \| 'rtl' \| 'auto'` | `'auto'` | Text direction |
|
|
107
|
+
|
|
108
|
+
### VueditImageEditorModal
|
|
109
|
+
|
|
110
|
+
Same props as above, plus:
|
|
111
|
+
|
|
112
|
+
| Prop | Type | Default | Description |
|
|
113
|
+
|------|------|---------|-------------|
|
|
114
|
+
| `open` | `boolean` | **required** | Controls modal visibility |
|
|
115
|
+
|
|
116
|
+
## Events
|
|
117
|
+
|
|
118
|
+
### VueditImageEditor
|
|
119
|
+
|
|
120
|
+
| Event | Payload | Description |
|
|
121
|
+
|-------|---------|-------------|
|
|
122
|
+
| `save` | `File \| Blob \| string \| HTMLCanvasElement` | Emitted when user clicks Save |
|
|
123
|
+
| `cancel` | — | Emitted when user clicks Cancel |
|
|
124
|
+
| `change` | `boolean` | Emitted when dirty state changes |
|
|
125
|
+
| `error` | `Error` | Emitted on errors (e.g. image load failure) |
|
|
126
|
+
|
|
127
|
+
### VueditImageEditorModal
|
|
128
|
+
|
|
129
|
+
| Event | Payload | Description |
|
|
130
|
+
|-------|---------|-------------|
|
|
131
|
+
| `save` | `File \| Blob \| string \| HTMLCanvasElement` | Emitted when user clicks Save |
|
|
132
|
+
| `close` | — | Emitted when modal is closed |
|
|
133
|
+
|
|
134
|
+
## Available Tools
|
|
135
|
+
|
|
136
|
+
Use the `tools` prop to control which tools appear:
|
|
137
|
+
|
|
138
|
+
```vue
|
|
139
|
+
<VueditImageEditor
|
|
140
|
+
:src="imageUrl"
|
|
141
|
+
:tools="['crop', 'rotate', 'filter']"
|
|
142
|
+
/>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
| Tool | Description |
|
|
146
|
+
|------|-------------|
|
|
147
|
+
| `crop` | Crop with aspect ratio presets |
|
|
148
|
+
| `rotate` | Rotate and flip |
|
|
149
|
+
| `filter` | Image filters and effects |
|
|
150
|
+
| `text` | Add and edit text |
|
|
151
|
+
| `draw` | Freehand drawing |
|
|
152
|
+
| `shape` | Add shapes (rect, circle, arrow, line) |
|
|
153
|
+
| `resize` | Resize image dimensions |
|
|
154
|
+
|
|
155
|
+
## i18n
|
|
156
|
+
|
|
157
|
+
Built-in locales: `en` (English), `ar` (Arabic).
|
|
158
|
+
|
|
159
|
+
```vue
|
|
160
|
+
<!-- Use Arabic with automatic RTL -->
|
|
161
|
+
<VueditImageEditor :src="imageUrl" locale="ar" />
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Custom Translations
|
|
165
|
+
|
|
166
|
+
```js
|
|
167
|
+
import { mergeTranslations } from 'vuedit-image-editor'
|
|
168
|
+
|
|
169
|
+
const frenchLocale = mergeTranslations({}, {
|
|
170
|
+
crop: 'Recadrer',
|
|
171
|
+
rotate: 'Pivoter',
|
|
172
|
+
filter: 'Filtre',
|
|
173
|
+
save: 'Enregistrer',
|
|
174
|
+
cancel: 'Annuler',
|
|
175
|
+
// ...
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
```vue
|
|
180
|
+
<VueditImageEditor :src="imageUrl" :locale="frenchLocale" />
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Keyboard Shortcuts
|
|
184
|
+
|
|
185
|
+
| Shortcut | Action |
|
|
186
|
+
|----------|--------|
|
|
187
|
+
| `Ctrl+Z` / `Cmd+Z` | Undo |
|
|
188
|
+
| `Ctrl+Y` / `Cmd+Y` / `Ctrl+Shift+Z` | Redo |
|
|
189
|
+
| `Delete` / `Backspace` | Delete selected object |
|
|
190
|
+
| `Escape` | Deselect / clear active tool |
|
|
191
|
+
|
|
192
|
+
## Exports
|
|
193
|
+
|
|
194
|
+
```js
|
|
195
|
+
// Components
|
|
196
|
+
import { VueditImageEditor, VueditImageEditorModal } from 'vuedit-image-editor'
|
|
197
|
+
|
|
198
|
+
// Composables
|
|
199
|
+
import { useFabricCanvas, useHistory } from 'vuedit-image-editor'
|
|
200
|
+
|
|
201
|
+
// Types
|
|
202
|
+
import type {
|
|
203
|
+
ImageSource,
|
|
204
|
+
OutputFormat,
|
|
205
|
+
ToolType,
|
|
206
|
+
CropAspectRatio,
|
|
207
|
+
ExportOptions,
|
|
208
|
+
FilterState,
|
|
209
|
+
BrushConfig,
|
|
210
|
+
ShapeConfig,
|
|
211
|
+
TextConfig,
|
|
212
|
+
VueditTranslations,
|
|
213
|
+
TranslationKeys,
|
|
214
|
+
} from 'vuedit-image-editor'
|
|
215
|
+
|
|
216
|
+
// i18n utilities
|
|
217
|
+
import { defaultTranslations, mergeTranslations, resolveTranslations } from 'vuedit-image-editor'
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## License
|
|
221
|
+
|
|
222
|
+
[MIT](./LICENSE)
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--vuedit-color-primary: #1B4965;--vuedit-color-primary-hover: #153d55;--vuedit-color-secondary: #415A77;--vuedit-color-bg: #1e1e2e;--vuedit-color-bg-panel: #2a2a3c;--vuedit-color-bg-toolbar: #252536;--vuedit-color-surface: #333346;--vuedit-color-text: #ffffff;--vuedit-color-text-muted: #a0a0b0;--vuedit-color-border: #3a3a4e;--vuedit-color-accent: #4da6ff;--vuedit-color-danger: #ff4d6a;--vuedit-toolbar-height: 56px;--vuedit-panel-width: 280px;--vuedit-header-height: 48px;--vuedit-border-radius: 8px;--vuedit-font-family: inherit;--vuedit-font-size-sm: 12px;--vuedit-font-size-base: 14px;--vuedit-font-size-lg: 16px;--vuedit-transition-speed: .2s}.vuedit-editor{display:flex;flex-direction:column;width:100%;height:100%;min-height:400px;font-family:var(--vuedit-font-family);font-size:var(--vuedit-font-size-base);color:var(--vuedit-color-text);background:var(--vuedit-color-bg);border-radius:var(--vuedit-border-radius);overflow:hidden;-webkit-user-select:none;user-select:none}.vuedit-editor[dir=rtl]{direction:rtl}.vuedit-header{display:flex;justify-content:space-between;align-items:center;height:var(--vuedit-header-height);padding:0 12px;background:var(--vuedit-color-bg-toolbar);border-bottom:1px solid var(--vuedit-color-border);flex-shrink:0}.vuedit-header__history{display:flex;gap:4px}.vuedit-header__actions{display:flex;gap:8px}.vuedit-body{display:flex;flex:1;overflow:hidden;position:relative}.vuedit-panel{width:var(--vuedit-panel-width);background:var(--vuedit-color-bg-panel);border-inline-end:1px solid var(--vuedit-color-border);overflow-y:auto;padding:16px;flex-shrink:0}.vuedit-panel__title{font-size:var(--vuedit-font-size-lg);font-weight:600;margin-bottom:16px}.vuedit-panel__section{margin-bottom:16px}.vuedit-panel__label{display:block;font-size:var(--vuedit-font-size-sm);color:var(--vuedit-color-text-muted);margin-bottom:6px}.vuedit-canvas-area{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;background:var(--vuedit-color-bg)}.vuedit-toolbar{display:flex;align-items:center;justify-content:center;height:var(--vuedit-toolbar-height);background:var(--vuedit-color-bg-toolbar);border-top:1px solid var(--vuedit-color-border);gap:2px;padding:0 8px;flex-shrink:0;overflow-x:auto}.vuedit-tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 12px;border:none;border-radius:6px;background:transparent;color:var(--vuedit-color-text-muted);cursor:pointer;transition:all var(--vuedit-transition-speed) ease;white-space:nowrap;min-width:56px}.vuedit-tool-btn:hover{background:var(--vuedit-color-surface);color:var(--vuedit-color-text)}.vuedit-tool-btn--active{background:var(--vuedit-color-primary);color:#fff}.vuedit-tool-btn--active:hover{background:var(--vuedit-color-primary-hover)}.vuedit-tool-btn__icon{width:20px;height:20px}.vuedit-tool-btn__label{font-size:10px;line-height:1}.vuedit-btn{padding:6px 16px;border-radius:6px;font-size:var(--vuedit-font-size-base);font-weight:500;cursor:pointer;transition:all var(--vuedit-transition-speed) ease;border:none;font-family:var(--vuedit-font-family)}.vuedit-btn:disabled{opacity:.4;cursor:not-allowed}.vuedit-btn--primary{background:var(--vuedit-color-primary);color:#fff}.vuedit-btn--primary:hover:not(:disabled){background:var(--vuedit-color-primary-hover)}.vuedit-btn--secondary{background:transparent;color:var(--vuedit-color-text-muted);border:1px solid var(--vuedit-color-border)}.vuedit-btn--secondary:hover:not(:disabled){background:var(--vuedit-color-surface);color:var(--vuedit-color-text)}.vuedit-btn--icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:6px;background:transparent;color:var(--vuedit-color-text-muted);border:none;cursor:pointer;transition:all var(--vuedit-transition-speed) ease}.vuedit-btn--icon:hover:not(:disabled){background:var(--vuedit-color-surface);color:var(--vuedit-color-text)}.vuedit-btn--icon:disabled{opacity:.3;cursor:not-allowed}.vuedit-range{display:flex;flex-direction:column;gap:4px}.vuedit-range__header{display:flex;justify-content:space-between;align-items:center}.vuedit-range__label{font-size:var(--vuedit-font-size-sm);color:var(--vuedit-color-text-muted)}.vuedit-range__value{font-size:var(--vuedit-font-size-sm);color:var(--vuedit-color-text);min-width:36px;text-align:right}.vuedit-range input[type=range]{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vuedit-color-border);border-radius:2px;outline:none;cursor:pointer}.vuedit-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--vuedit-color-accent);cursor:pointer;border:2px solid var(--vuedit-color-bg-panel)}.vuedit-colors{display:flex;flex-wrap:wrap;gap:6px}.vuedit-color-swatch{width:24px;height:24px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:border-color var(--vuedit-transition-speed) ease}.vuedit-color-swatch:hover{border-color:var(--vuedit-color-text-muted)}.vuedit-color-swatch--active{border-color:var(--vuedit-color-accent)}.vuedit-confirm-bar{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--vuedit-color-border);margin-top:12px}.vuedit-confirm-bar .vuedit-btn{flex:1}.vuedit-aspect-ratios{display:flex;flex-wrap:wrap;gap:6px}.vuedit-aspect-chip{padding:4px 10px;border-radius:14px;font-size:var(--vuedit-font-size-sm);border:1px solid var(--vuedit-color-border);background:transparent;color:var(--vuedit-color-text-muted);cursor:pointer;transition:all var(--vuedit-transition-speed) ease}.vuedit-aspect-chip:hover{border-color:var(--vuedit-color-text-muted);color:var(--vuedit-color-text)}.vuedit-aspect-chip--active{background:var(--vuedit-color-primary);border-color:var(--vuedit-color-primary);color:#fff}.vuedit-toggle-group{display:flex;gap:4px}.vuedit-toggle{padding:6px 10px;border:1px solid var(--vuedit-color-border);border-radius:6px;background:transparent;color:var(--vuedit-color-text-muted);cursor:pointer;font-size:var(--vuedit-font-size-sm);transition:all var(--vuedit-transition-speed) ease}.vuedit-toggle:hover{border-color:var(--vuedit-color-text-muted)}.vuedit-toggle--active{background:var(--vuedit-color-primary);border-color:var(--vuedit-color-primary);color:#fff}.vuedit-input{width:100%;padding:6px 10px;border:1px solid var(--vuedit-color-border);border-radius:6px;background:var(--vuedit-color-surface);color:var(--vuedit-color-text);font-size:var(--vuedit-font-size-base);font-family:var(--vuedit-font-family);outline:none;transition:border-color var(--vuedit-transition-speed) ease}.vuedit-input:focus{border-color:var(--vuedit-color-accent)}.vuedit-select{width:100%;padding:6px 10px;border:1px solid var(--vuedit-color-border);border-radius:6px;background:var(--vuedit-color-surface);color:var(--vuedit-color-text);font-size:var(--vuedit-font-size-base);font-family:var(--vuedit-font-family);outline:none;cursor:pointer}.vuedit-modal{border:none;padding:0;width:95vw;max-width:1200px;height:90vh;border-radius:var(--vuedit-border-radius);overflow:hidden;background:transparent}.vuedit-modal::backdrop{background:#0009}@media (max-width: 768px){.vuedit-panel{position:absolute;bottom:0;left:0;right:0;width:100%;height:auto;max-height:40vh;border-inline-end:none;border-top:1px solid var(--vuedit-color-border);z-index:10}.vuedit-tool-btn{padding:6px 8px;min-width:48px}.vuedit-tool-btn__label{font-size:9px}.vuedit-modal{width:100vw;height:100vh;max-width:none;border-radius:0}}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ToolType, CropAspectRatio, ImageSource } from '../types';
|
|
2
|
+
import { VueditTranslations } from '../i18n';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
src: ImageSource;
|
|
6
|
+
outputFormat?: "file" | "blob" | "dataurl" | "canvas";
|
|
7
|
+
outputMimeType?: string;
|
|
8
|
+
outputQuality?: number;
|
|
9
|
+
outputFileName?: string;
|
|
10
|
+
tools?: ToolType[];
|
|
11
|
+
cropAspectRatios?: CropAspectRatio[];
|
|
12
|
+
locale?: string | VueditTranslations;
|
|
13
|
+
dir?: "ltr" | "rtl" | "auto";
|
|
14
|
+
}>, {
|
|
15
|
+
outputFormat: string;
|
|
16
|
+
outputMimeType: string;
|
|
17
|
+
outputQuality: number;
|
|
18
|
+
outputFileName: string;
|
|
19
|
+
tools: () => string[];
|
|
20
|
+
cropAspectRatios: () => ({
|
|
21
|
+
label: string;
|
|
22
|
+
value: null;
|
|
23
|
+
} | {
|
|
24
|
+
label: string;
|
|
25
|
+
value: number;
|
|
26
|
+
})[];
|
|
27
|
+
locale: string;
|
|
28
|
+
dir: string;
|
|
29
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
30
|
+
save: (result: string | File | Blob | HTMLCanvasElement) => void;
|
|
31
|
+
cancel: () => void;
|
|
32
|
+
change: (dirty: boolean) => void;
|
|
33
|
+
error: (error: Error) => void;
|
|
34
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
35
|
+
src: ImageSource;
|
|
36
|
+
outputFormat?: "file" | "blob" | "dataurl" | "canvas";
|
|
37
|
+
outputMimeType?: string;
|
|
38
|
+
outputQuality?: number;
|
|
39
|
+
outputFileName?: string;
|
|
40
|
+
tools?: ToolType[];
|
|
41
|
+
cropAspectRatios?: CropAspectRatio[];
|
|
42
|
+
locale?: string | VueditTranslations;
|
|
43
|
+
dir?: "ltr" | "rtl" | "auto";
|
|
44
|
+
}>, {
|
|
45
|
+
outputFormat: string;
|
|
46
|
+
outputMimeType: string;
|
|
47
|
+
outputQuality: number;
|
|
48
|
+
outputFileName: string;
|
|
49
|
+
tools: () => string[];
|
|
50
|
+
cropAspectRatios: () => ({
|
|
51
|
+
label: string;
|
|
52
|
+
value: null;
|
|
53
|
+
} | {
|
|
54
|
+
label: string;
|
|
55
|
+
value: number;
|
|
56
|
+
})[];
|
|
57
|
+
locale: string;
|
|
58
|
+
dir: string;
|
|
59
|
+
}>>> & Readonly<{
|
|
60
|
+
onSave?: ((result: string | File | Blob | HTMLCanvasElement) => any) | undefined;
|
|
61
|
+
onCancel?: (() => any) | undefined;
|
|
62
|
+
onChange?: ((dirty: boolean) => any) | undefined;
|
|
63
|
+
onError?: ((error: Error) => any) | undefined;
|
|
64
|
+
}>, {
|
|
65
|
+
tools: ToolType[];
|
|
66
|
+
outputFormat: "file" | "blob" | "dataurl" | "canvas";
|
|
67
|
+
outputMimeType: string;
|
|
68
|
+
outputQuality: number;
|
|
69
|
+
outputFileName: string;
|
|
70
|
+
cropAspectRatios: CropAspectRatio[];
|
|
71
|
+
locale: string | VueditTranslations;
|
|
72
|
+
dir: "ltr" | "rtl" | "auto";
|
|
73
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
74
|
+
export default _default;
|
|
75
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
76
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
77
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
78
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
79
|
+
} : {
|
|
80
|
+
type: import('vue').PropType<T[K]>;
|
|
81
|
+
required: true;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
type __VLS_WithDefaults<P, D> = {
|
|
85
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
86
|
+
default: D[K];
|
|
87
|
+
}> : P[K];
|
|
88
|
+
};
|
|
89
|
+
type __VLS_Prettify<T> = {
|
|
90
|
+
[K in keyof T]: T[K];
|
|
91
|
+
} & {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ToolType, CropAspectRatio, ImageSource } from '../types';
|
|
2
|
+
import { VueditTranslations } from '../i18n';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
open: boolean;
|
|
6
|
+
src: ImageSource;
|
|
7
|
+
outputFormat?: "file" | "blob" | "dataurl" | "canvas";
|
|
8
|
+
outputMimeType?: string;
|
|
9
|
+
outputQuality?: number;
|
|
10
|
+
outputFileName?: string;
|
|
11
|
+
tools?: ToolType[];
|
|
12
|
+
cropAspectRatios?: CropAspectRatio[];
|
|
13
|
+
locale?: string | VueditTranslations;
|
|
14
|
+
dir?: "ltr" | "rtl" | "auto";
|
|
15
|
+
}>, {
|
|
16
|
+
outputFormat: string;
|
|
17
|
+
outputMimeType: string;
|
|
18
|
+
outputQuality: number;
|
|
19
|
+
outputFileName: string;
|
|
20
|
+
locale: string;
|
|
21
|
+
dir: string;
|
|
22
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
23
|
+
save: (result: string | File | Blob | HTMLCanvasElement) => void;
|
|
24
|
+
close: () => void;
|
|
25
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
26
|
+
open: boolean;
|
|
27
|
+
src: ImageSource;
|
|
28
|
+
outputFormat?: "file" | "blob" | "dataurl" | "canvas";
|
|
29
|
+
outputMimeType?: string;
|
|
30
|
+
outputQuality?: number;
|
|
31
|
+
outputFileName?: string;
|
|
32
|
+
tools?: ToolType[];
|
|
33
|
+
cropAspectRatios?: CropAspectRatio[];
|
|
34
|
+
locale?: string | VueditTranslations;
|
|
35
|
+
dir?: "ltr" | "rtl" | "auto";
|
|
36
|
+
}>, {
|
|
37
|
+
outputFormat: string;
|
|
38
|
+
outputMimeType: string;
|
|
39
|
+
outputQuality: number;
|
|
40
|
+
outputFileName: string;
|
|
41
|
+
locale: string;
|
|
42
|
+
dir: string;
|
|
43
|
+
}>>> & Readonly<{
|
|
44
|
+
onSave?: ((result: string | File | Blob | HTMLCanvasElement) => any) | undefined;
|
|
45
|
+
onClose?: (() => any) | undefined;
|
|
46
|
+
}>, {
|
|
47
|
+
outputFormat: "file" | "blob" | "dataurl" | "canvas";
|
|
48
|
+
outputMimeType: string;
|
|
49
|
+
outputQuality: number;
|
|
50
|
+
outputFileName: string;
|
|
51
|
+
locale: string | VueditTranslations;
|
|
52
|
+
dir: "ltr" | "rtl" | "auto";
|
|
53
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
export default _default;
|
|
55
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
56
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
57
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
58
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
59
|
+
} : {
|
|
60
|
+
type: import('vue').PropType<T[K]>;
|
|
61
|
+
required: true;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
type __VLS_WithDefaults<P, D> = {
|
|
65
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
66
|
+
default: D[K];
|
|
67
|
+
}> : P[K];
|
|
68
|
+
};
|
|
69
|
+
type __VLS_Prettify<T> = {
|
|
70
|
+
[K in keyof T]: T[K];
|
|
71
|
+
} & {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
|
+
canvasEl: import('vue').Ref<HTMLCanvasElement | null, HTMLCanvasElement | null>;
|
|
3
|
+
containerEl: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
|
|
4
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CropAspectRatio } from '../../types';
|
|
2
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
aspectRatios: CropAspectRatio[];
|
|
6
|
+
selectedRatio: CropAspectRatio | null;
|
|
7
|
+
isCropping: boolean;
|
|
8
|
+
t: (key: TranslationKeys) => string;
|
|
9
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
+
selectRatio: (ratio: CropAspectRatio) => void;
|
|
11
|
+
apply: () => void;
|
|
12
|
+
cancel: () => void;
|
|
13
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
14
|
+
aspectRatios: CropAspectRatio[];
|
|
15
|
+
selectedRatio: CropAspectRatio | null;
|
|
16
|
+
isCropping: boolean;
|
|
17
|
+
t: (key: TranslationKeys) => string;
|
|
18
|
+
}>>> & Readonly<{
|
|
19
|
+
onCancel?: (() => any) | undefined;
|
|
20
|
+
onApply?: (() => any) | undefined;
|
|
21
|
+
onSelectRatio?: ((ratio: CropAspectRatio) => any) | undefined;
|
|
22
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
23
|
+
export default _default;
|
|
24
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
25
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
26
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
27
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
28
|
+
} : {
|
|
29
|
+
type: import('vue').PropType<T[K]>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BrushConfig } from '../../types';
|
|
2
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
config: BrushConfig;
|
|
6
|
+
t: (key: TranslationKeys) => string;
|
|
7
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
update: (key: keyof BrushConfig, value: string | number) => void;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
10
|
+
config: BrushConfig;
|
|
11
|
+
t: (key: TranslationKeys) => string;
|
|
12
|
+
}>>> & Readonly<{
|
|
13
|
+
onUpdate?: ((key: keyof BrushConfig, value: string | number) => any) | undefined;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
17
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
18
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
19
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
20
|
+
} : {
|
|
21
|
+
type: import('vue').PropType<T[K]>;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FilterState } from '../../types';
|
|
2
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
state: FilterState;
|
|
6
|
+
t: (key: TranslationKeys) => string;
|
|
7
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
update: (key: keyof FilterState, value: number | boolean) => void;
|
|
9
|
+
reset: () => void;
|
|
10
|
+
commit: () => void;
|
|
11
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
12
|
+
state: FilterState;
|
|
13
|
+
t: (key: TranslationKeys) => string;
|
|
14
|
+
}>>> & Readonly<{
|
|
15
|
+
onReset?: (() => any) | undefined;
|
|
16
|
+
onUpdate?: ((key: keyof FilterState, value: number | boolean) => any) | undefined;
|
|
17
|
+
onCommit?: (() => any) | undefined;
|
|
18
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
21
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
22
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
23
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
24
|
+
} : {
|
|
25
|
+
type: import('vue').PropType<T[K]>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
2
|
+
|
|
3
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
lockRatio: boolean;
|
|
7
|
+
t: (key: TranslationKeys) => string;
|
|
8
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
setWidth: (v: number) => void;
|
|
10
|
+
setHeight: (v: number) => void;
|
|
11
|
+
toggleLock: () => void;
|
|
12
|
+
apply: () => void;
|
|
13
|
+
cancel: () => void;
|
|
14
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
lockRatio: boolean;
|
|
18
|
+
t: (key: TranslationKeys) => string;
|
|
19
|
+
}>>> & Readonly<{
|
|
20
|
+
onCancel?: (() => any) | undefined;
|
|
21
|
+
onApply?: (() => any) | undefined;
|
|
22
|
+
onSetWidth?: ((v: number) => any) | undefined;
|
|
23
|
+
onSetHeight?: ((v: number) => any) | undefined;
|
|
24
|
+
onToggleLock?: (() => any) | undefined;
|
|
25
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
28
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
29
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
30
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
31
|
+
} : {
|
|
32
|
+
type: import('vue').PropType<T[K]>;
|
|
33
|
+
required: true;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
2
|
+
|
|
3
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
4
|
+
rotation: number;
|
|
5
|
+
t: (key: TranslationKeys) => string;
|
|
6
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
7
|
+
rotateLeft: () => void;
|
|
8
|
+
rotateRight: () => void;
|
|
9
|
+
flipH: () => void;
|
|
10
|
+
flipV: () => void;
|
|
11
|
+
setRotation: (deg: number) => void;
|
|
12
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
13
|
+
rotation: number;
|
|
14
|
+
t: (key: TranslationKeys) => string;
|
|
15
|
+
}>>> & Readonly<{
|
|
16
|
+
onRotateLeft?: (() => any) | undefined;
|
|
17
|
+
onRotateRight?: (() => any) | undefined;
|
|
18
|
+
onFlipH?: (() => any) | undefined;
|
|
19
|
+
onFlipV?: (() => any) | undefined;
|
|
20
|
+
onSetRotation?: ((deg: number) => any) | undefined;
|
|
21
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
24
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
25
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
26
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
27
|
+
} : {
|
|
28
|
+
type: import('vue').PropType<T[K]>;
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ShapeConfig } from '../../types';
|
|
2
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
config: ShapeConfig;
|
|
6
|
+
t: (key: TranslationKeys) => string;
|
|
7
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
update: (key: keyof ShapeConfig, value: string | number) => void;
|
|
9
|
+
addShape: () => void;
|
|
10
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
11
|
+
config: ShapeConfig;
|
|
12
|
+
t: (key: TranslationKeys) => string;
|
|
13
|
+
}>>> & Readonly<{
|
|
14
|
+
onUpdate?: ((key: keyof ShapeConfig, value: string | number) => any) | undefined;
|
|
15
|
+
onAddShape?: (() => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
19
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
20
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
21
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
22
|
+
} : {
|
|
23
|
+
type: import('vue').PropType<T[K]>;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TextConfig } from '../../types';
|
|
2
|
+
import { TranslationKeys } from '../../i18n/en';
|
|
3
|
+
|
|
4
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
config: TextConfig;
|
|
6
|
+
t: (key: TranslationKeys) => string;
|
|
7
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
update: (key: keyof TextConfig, value: string | number) => void;
|
|
9
|
+
addText: () => void;
|
|
10
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
11
|
+
config: TextConfig;
|
|
12
|
+
t: (key: TranslationKeys) => string;
|
|
13
|
+
}>>> & Readonly<{
|
|
14
|
+
onAddText?: (() => any) | undefined;
|
|
15
|
+
onUpdate?: ((key: keyof TextConfig, value: string | number) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
19
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
20
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
21
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
22
|
+
} : {
|
|
23
|
+
type: import('vue').PropType<T[K]>;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
2
|
+
modelValue: string;
|
|
3
|
+
label?: string;
|
|
4
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
5
|
+
"update:modelValue": (value: string) => void;
|
|
6
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
7
|
+
modelValue: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
}>>> & Readonly<{
|
|
10
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
14
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
15
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
16
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
17
|
+
} : {
|
|
18
|
+
type: import('vue').PropType<T[K]>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
2
|
+
applyLabel?: string;
|
|
3
|
+
cancelLabel?: string;
|
|
4
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
5
|
+
apply: () => void;
|
|
6
|
+
cancel: () => void;
|
|
7
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
8
|
+
applyLabel?: string;
|
|
9
|
+
cancelLabel?: string;
|
|
10
|
+
}>>> & Readonly<{
|
|
11
|
+
onCancel?: (() => any) | undefined;
|
|
12
|
+
onApply?: (() => any) | undefined;
|
|
13
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
16
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
17
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
18
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
19
|
+
} : {
|
|
20
|
+
type: import('vue').PropType<T[K]>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
};
|