@bagelink/vue 1.15.413 → 1.15.419
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/dist/admin.css +1 -1
- package/dist/components/Avatar.vue.d.ts.map +1 -1
- package/dist/components/FloatingPanel.vue.d.ts +1 -0
- package/dist/components/FloatingPanel.vue.d.ts.map +1 -1
- package/dist/components/Loading.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ArrayInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RadioGroup.vue.d.ts +1 -0
- package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/Upload/useFileUpload.d.ts +1 -0
- package/dist/components/form/inputs/Upload/useFileUpload.d.ts.map +1 -1
- package/dist/composables/useSchemaField.d.ts.map +1 -1
- package/dist/core.css +1 -1
- package/dist/form-flow/form-flow.d.ts.map +1 -1
- package/dist/form-flow/schema-fields.d.ts +2 -0
- package/dist/form-flow/schema-fields.d.ts.map +1 -1
- package/dist/index.cjs +41 -41
- package/dist/index.css +1 -1
- package/dist/index.mjs +7862 -7805
- package/dist/ploni.css +1 -1
- package/dist/style.css +2 -2
- package/dist/types/BagelForm.d.ts +2 -0
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/index.d.ts +15 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Avatar.vue +1 -1
- package/src/components/FloatingPanel.vue +19 -3
- package/src/components/Loading.vue +25 -62
- package/src/components/form/inputs/ArrayInput.vue +3 -10
- package/src/components/form/inputs/RadioGroup.vue +4 -3
- package/src/components/form/inputs/RichText/index.vue +54 -36
- package/src/components/form/inputs/Upload/UploadInput.vue +1 -0
- package/src/components/form/inputs/Upload/useFileUpload.ts +7 -0
- package/src/composables/useSchemaField.ts +19 -1
- package/src/form-flow/form-flow.ts +1 -0
- package/src/form-flow/schema-fields.ts +4 -0
- package/src/styles/fonts/Ploni.css +32 -0
- package/src/types/BagelForm.ts +2 -0
- package/src/utils/index.ts +48 -1
|
@@ -107,6 +107,8 @@ export interface UploadInputProps extends BagelInputShellProps {
|
|
|
107
107
|
* (e.g. `{ imageURL, imageName, extension, altText }`); it is normalized internally.
|
|
108
108
|
*/
|
|
109
109
|
modelValue?: string | string[] | UploadInputValueObject | (string | UploadInputValueObject)[];
|
|
110
|
+
/** Optional upload handler. When omitted, the shared file-storage uploader is used. */
|
|
111
|
+
upload?: (file: File) => Promise<string>;
|
|
110
112
|
width?: string;
|
|
111
113
|
height?: string | 'auto';
|
|
112
114
|
dirPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,15 +2,29 @@ import { Attributes, BglFormSchemaT, Path } from '../types/BagelForm';
|
|
|
2
2
|
export declare function debounce(fn: () => void, wait?: number): void;
|
|
3
3
|
export declare function slugify(str: string): string;
|
|
4
4
|
export declare function keyToLabel(key?: string): string | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Convert stored rich-text HTML to compact plain text for tables, labels, and
|
|
7
|
+
* other read-only summaries. Block elements are separated so paragraphs do not
|
|
8
|
+
* run together.
|
|
9
|
+
*/
|
|
10
|
+
export declare function richTextToPlainText(value: string): string;
|
|
11
|
+
export declare function containsHtml(value: string): boolean;
|
|
5
12
|
export declare function copyText(text: string, cb?: (msg: string) => void): Promise<void>;
|
|
6
13
|
export declare function initials(...strArr: string[]): string;
|
|
14
|
+
export interface SanitizeHtmlOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Remove inline presentation and layout attributes while preserving semantic
|
|
17
|
+
* markup such as paragraphs, lists, emphasis, and links.
|
|
18
|
+
*/
|
|
19
|
+
resetFormatting?: boolean;
|
|
20
|
+
}
|
|
7
21
|
/**
|
|
8
22
|
* Strip script-capable content from an HTML string so it is safe for v-html.
|
|
9
23
|
* Removes <script>/<style>/<iframe>/<object>/<embed> elements, on* event
|
|
10
24
|
* handler attributes, and javascript: / data: URLs in href/src.
|
|
11
25
|
* Allowlist-free by design — formatting tags (b, i, a, span…) pass through.
|
|
12
26
|
*/
|
|
13
|
-
export declare function sanitizeHtml(html: string): string;
|
|
27
|
+
export declare function sanitizeHtml(html: string, options?: SanitizeHtmlOptions): string;
|
|
14
28
|
export declare function useEscape(event: KeyboardEvent, closeModel: () => void): void;
|
|
15
29
|
export declare function classify(fieldVal?: any, row?: any, ...classes: any[]): string;
|
|
16
30
|
export declare function bindAttrs<T, P extends Path<T>>(attrs?: Attributes<T, P>, fieldVal?: any, row?: T): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAK1E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,MAAY,QAO1D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAMlC;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAGtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,UAG3C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -61,7 +61,7 @@ const themed = computed(() => props.color
|
|
|
61
61
|
>
|
|
62
62
|
<Image v-if="src" :src="src" :alt="alt || name" />
|
|
63
63
|
<Icon v-else-if="icon" :icon="icon" :size="resolvedSize / 40" />
|
|
64
|
-
<p v-else :style="{ 'line-height':
|
|
64
|
+
<p v-else :style="{ 'line-height': '1', 'font-size': `calc(1.5rem * ${resolvedSize} / 50)` }" class="">
|
|
65
65
|
{{ (fallback || initials(name || '')).toUpperCase() }}
|
|
66
66
|
</p>
|
|
67
67
|
</div>
|
|
@@ -22,12 +22,15 @@ const {
|
|
|
22
22
|
launcherLabel = '',
|
|
23
23
|
/** Show the floating FAB launcher. Set false to drive open state externally. */
|
|
24
24
|
launcher = true,
|
|
25
|
+
/** Show the panel's controls row. Disable when slotted content owns its header. */
|
|
26
|
+
controls = true,
|
|
25
27
|
/** Start open / controlled open state (v-model:open). */
|
|
26
28
|
open = false,
|
|
27
29
|
} = defineProps<{
|
|
28
30
|
launcherIcon?: string
|
|
29
31
|
launcherLabel?: string
|
|
30
32
|
launcher?: boolean
|
|
33
|
+
controls?: boolean
|
|
31
34
|
open?: boolean
|
|
32
35
|
}>()
|
|
33
36
|
|
|
@@ -48,6 +51,7 @@ defineExpose({
|
|
|
48
51
|
<!-- FAB launcher (hidden while open) -->
|
|
49
52
|
<Btn
|
|
50
53
|
v-if="launcher && !isOpen"
|
|
54
|
+
lg
|
|
51
55
|
color="primary" round :icon="launcherIcon" :value="launcherLabel"
|
|
52
56
|
class="floating-panel-fab fixed bottom-1-5 end-1-5 z-9 shadow"
|
|
53
57
|
@click="setOpen(true)"
|
|
@@ -58,7 +62,7 @@ defineExpose({
|
|
|
58
62
|
<Transition name="floating-panel">
|
|
59
63
|
<div v-show="isOpen" class="floating-panel">
|
|
60
64
|
<div class="floating-panel-box">
|
|
61
|
-
<div class="floating-panel-controls flex align-items-center gap-025 p-025 border-bottom">
|
|
65
|
+
<div v-if="controls" class="floating-panel-controls flex align-items-center gap-025 p-025 border-bottom">
|
|
62
66
|
<slot name="controls" :close="() => setOpen(false)">
|
|
63
67
|
<Btn icon="remove" flat thin size="xs" class="ms-auto" @click="setOpen(false)" />
|
|
64
68
|
</slot>
|
|
@@ -81,11 +85,23 @@ defineExpose({
|
|
|
81
85
|
align-items: flex-end;
|
|
82
86
|
pointer-events: none;
|
|
83
87
|
}
|
|
88
|
+
|
|
89
|
+
.floating-panel-fab:hover {
|
|
90
|
+
transform: scale(1.08);
|
|
91
|
+
}
|
|
92
|
+
.floating-panel-fab:active {
|
|
93
|
+
transform: scale(0.94);
|
|
94
|
+
}
|
|
95
|
+
@media (prefers-reduced-motion: reduce) {
|
|
96
|
+
.floating-panel-fab {
|
|
97
|
+
transition: none;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
84
100
|
.floating-panel-box {
|
|
85
101
|
position: relative;
|
|
86
102
|
pointer-events: auto;
|
|
87
|
-
width: min(
|
|
88
|
-
height: min(90vh,
|
|
103
|
+
width: min(520px, calc(100vw - 2rem));
|
|
104
|
+
height: min(90vh, 720px);
|
|
89
105
|
margin: 1rem;
|
|
90
106
|
border-radius: 12px;
|
|
91
107
|
border: 1px solid var(--bgl-border-color, #e0e0e0);
|
|
@@ -55,9 +55,10 @@ const svgCircumference = computed(() => Math.PI * 2 * svgRadius.value)
|
|
|
55
55
|
<!-- Ellipsis Theme -->
|
|
56
56
|
<template v-if="theme === 'ellipsis'">
|
|
57
57
|
<slot />
|
|
58
|
-
<div
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
<div
|
|
59
|
+
class="lds-ellipsis"
|
|
60
|
+
:style="{ '--size': computedSize, '--animation-duration': animationDuration, color: computedColor }"
|
|
61
|
+
/>
|
|
61
62
|
</template>
|
|
62
63
|
|
|
63
64
|
<!-- Ring Theme -->
|
|
@@ -198,75 +199,37 @@ const svgCircumference = computed(() => Math.PI * 2 * svgRadius.value)
|
|
|
198
199
|
}
|
|
199
200
|
|
|
200
201
|
/* Ellipsis Theme */
|
|
201
|
-
.lds-ellipsis,
|
|
202
|
-
.lds-ellipsis div {
|
|
203
|
-
box-sizing: border-box;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
202
|
.lds-ellipsis {
|
|
207
|
-
display: inline-block;
|
|
208
|
-
position: relative;
|
|
209
203
|
width: var(--size);
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
background: currentColor;
|
|
220
|
-
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
.lds-ellipsis div:nth-child(1) {
|
|
224
|
-
left: calc(var(--size) / 10);
|
|
225
|
-
animation: lds-ellipsis1 0.6s infinite;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
.lds-ellipsis div:nth-child(2) {
|
|
229
|
-
left: calc(var(--size) / 10);
|
|
230
|
-
animation: lds-ellipsis2 0.6s infinite;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.lds-ellipsis div:nth-child(3) {
|
|
234
|
-
left: calc(var(--size) / 2.5);
|
|
235
|
-
animation: lds-ellipsis2 0.6s infinite;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.lds-ellipsis div:nth-child(4) {
|
|
239
|
-
left: calc(var(--size) / 1.42);
|
|
240
|
-
animation: lds-ellipsis3 0.6s infinite;
|
|
204
|
+
aspect-ratio: 2;
|
|
205
|
+
--dot: no-repeat radial-gradient(circle closest-side, currentColor 90%, transparent);
|
|
206
|
+
background:
|
|
207
|
+
var(--dot) 0% 50%,
|
|
208
|
+
var(--dot) 50% 50%,
|
|
209
|
+
var(--dot) 100% 50%;
|
|
210
|
+
background-size: calc(100% / 3) 50%;
|
|
211
|
+
animation: bgl-loading-dots var(--animation-duration) infinite linear;
|
|
212
|
+
direction: ltr;
|
|
241
213
|
}
|
|
242
214
|
|
|
243
|
-
@keyframes
|
|
244
|
-
|
|
245
|
-
|
|
215
|
+
@keyframes bgl-loading-dots {
|
|
216
|
+
20% {
|
|
217
|
+
background-position: 0% 0%, 50% 50%, 100% 50%;
|
|
246
218
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
transform: scale(1);
|
|
219
|
+
40% {
|
|
220
|
+
background-position: 0% 100%, 50% 0%, 100% 50%;
|
|
250
221
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
@keyframes lds-ellipsis3 {
|
|
254
|
-
0% {
|
|
255
|
-
transform: scale(1);
|
|
222
|
+
60% {
|
|
223
|
+
background-position: 0% 50%, 50% 100%, 100% 0%;
|
|
256
224
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
transform: scale(0);
|
|
225
|
+
80% {
|
|
226
|
+
background-position: 0% 50%, 50% 50%, 100% 100%;
|
|
260
227
|
}
|
|
261
228
|
}
|
|
262
229
|
|
|
263
|
-
@
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
100% {
|
|
269
|
-
transform: translate(calc(var(--size) / 3.33), 0);
|
|
230
|
+
@media (prefers-reduced-motion: reduce) {
|
|
231
|
+
.lds-ellipsis {
|
|
232
|
+
animation: none;
|
|
270
233
|
}
|
|
271
234
|
}
|
|
272
235
|
</style>
|
|
@@ -3,7 +3,7 @@ import type { Ref, WritableComputedRef } from 'vue'
|
|
|
3
3
|
|
|
4
4
|
import type { DraggableEvent } from '../../draggable/useDraggable'
|
|
5
5
|
|
|
6
|
-
import { Btn, resolveI18n, useI18n, pathKeyToURL } from '@bagelink/vue'
|
|
6
|
+
import { Btn, resolveI18n, useI18n, pathKeyToURL, richTextToPlainText } from '@bagelink/vue'
|
|
7
7
|
import { computed, ref, watch, useSlots, type VNode } from 'vue'
|
|
8
8
|
import Draggable from '../../draggable/Draggable.vue'
|
|
9
9
|
import type { BagelInputShellProps } from './bagelInputShell'
|
|
@@ -51,23 +51,16 @@ const itemLabelPrefix = computed(() => {
|
|
|
51
51
|
const IDENTIFIER_FIELDS = ['title', 'name', 'label', 'displayName', 'display_name', 'heading', 'caption', 'text']
|
|
52
52
|
const IMAGE_FIELDS = ['image', 'thumbnail', 'avatar', 'photo', 'picture', 'profilePic', 'profile_pic', 'icon', 'logo']
|
|
53
53
|
|
|
54
|
-
/** Rich-text fields often store HTML; collapse to plain text for the collapsed row label. */
|
|
55
|
-
function toPlainText(value: string): string {
|
|
56
|
-
if (!value.includes('<') && !value.includes('&')) return value.trim()
|
|
57
|
-
const doc = new DOMParser().parseFromString(value, 'text/html')
|
|
58
|
-
return (doc.body.textContent || '').replace(/\s+/g, ' ').trim()
|
|
59
|
-
}
|
|
60
|
-
|
|
61
54
|
function getItemIdentifier(item: T): string | null {
|
|
62
55
|
if (typeof item === 'string' && item.trim().length > 0) {
|
|
63
|
-
const plain =
|
|
56
|
+
const plain = richTextToPlainText(item)
|
|
64
57
|
return plain.length > 0 ? plain : null
|
|
65
58
|
}
|
|
66
59
|
if (item !== null && item !== undefined && typeof item === 'object') {
|
|
67
60
|
for (const field of IDENTIFIER_FIELDS) {
|
|
68
61
|
const val = (item as Record<string, unknown>)[field]
|
|
69
62
|
if (typeof val === 'string' && val.trim().length > 0) {
|
|
70
|
-
const plain =
|
|
63
|
+
const plain = richTextToPlainText(val)
|
|
71
64
|
if (plain.length > 0) return plain
|
|
72
65
|
}
|
|
73
66
|
}
|
|
@@ -38,6 +38,7 @@ const props = withDefaults(
|
|
|
38
38
|
invertedActive?: boolean
|
|
39
39
|
align?: 'start' | 'center' | 'end' | 'top' | 'bottom'
|
|
40
40
|
hideRadio?: boolean
|
|
41
|
+
hideLabelWhenImage?: boolean
|
|
41
42
|
bgColor?: string
|
|
42
43
|
activeBgColor?: string
|
|
43
44
|
activeTextColor?: string
|
|
@@ -189,10 +190,10 @@ function handleChange() {
|
|
|
189
190
|
<div class="flex w-100 gap-1 flex-wrap m_gap-05 m_gap-row-025"
|
|
190
191
|
:class="{ 'txt-center justify-content-center mx-auto': textAlign === 'center', 'radio-option-content--centered-image': textAlign === 'center' && opt.imgSrc, 'txt-end justify-content-end': textAlign === 'right', 'txt-start justify-content-start': textAlign === 'left' }"
|
|
191
192
|
:style="{ color: textColor }">
|
|
192
|
-
<img v-if="opt.imgSrc" class="py-025 radius-05 m_w40 object-fit" height="40" width="40" :src="opt.imgSrc" :alt="opt.imgAlt || opt.label || ''">
|
|
193
|
+
<img v-if="opt.imgSrc" class="py-025 radius-05 m_w40 object-fit" height="40" width="40" :src="opt.imgSrc" :alt="(hideLabelWhenImage ? opt.label || opt.imgAlt : opt.imgAlt || opt.label) || ''">
|
|
193
194
|
<Icon v-else-if="opt.icon" :icon="opt.icon" :size="1" />
|
|
194
|
-
<div
|
|
195
|
-
<div v-if="opt.label" class="m-0 m_txt-14 line-height-14" v-html="sanitizeHtml(opt.label)" />
|
|
195
|
+
<div v-if="(opt.label && !(hideLabelWhenImage && opt.imgSrc)) || opt.subLabel">
|
|
196
|
+
<div v-if="opt.label && !(hideLabelWhenImage && opt.imgSrc)" class="m-0 m_txt-14 line-height-14" v-html="sanitizeHtml(opt.label)" />
|
|
196
197
|
<p v-if="opt.subLabel" class="txt-gray txt-12 m-0 pt-025">{{ opt.subLabel }}</p>
|
|
197
198
|
</div>
|
|
198
199
|
<slot name="radioItem" v-bind="opt" />
|
|
@@ -5,6 +5,7 @@ import { CodeEditor, copyText, Btn, Dialog, BglVideo, Icon, Card, ColorInput, pa
|
|
|
5
5
|
import { watch, onUnmounted, onBeforeUnmount, onMounted, ref, computed, useAttrs } from 'vue'
|
|
6
6
|
import CheckInput from '../CheckInput.vue'
|
|
7
7
|
import NumberInput from '../NumberInput.vue'
|
|
8
|
+
import SelectBtn from '../SelectBtn.vue'
|
|
8
9
|
import SelectInput from '../SelectInput.vue'
|
|
9
10
|
import TextInput from '../TextInput.vue'
|
|
10
11
|
import UploadInput from '../Upload/UploadInput.vue'
|
|
@@ -3622,44 +3623,48 @@ const imgTransform = computed({
|
|
|
3622
3623
|
<!-- Image Modal -->
|
|
3623
3624
|
<Dialog
|
|
3624
3625
|
:open="showImageModal" :title="pendingImageData?.existingImage ? 'Edit Image' : 'Insert Image'"
|
|
3625
|
-
width="
|
|
3626
|
+
width="l" @update:open="showImageModal = $event"
|
|
3626
3627
|
>
|
|
3627
|
-
<
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3628
|
+
<div class="image-dialog-layout">
|
|
3629
|
+
<UploadInput v-model="imgTransform" label="Image" type="image" @keydown.enter="submitImage" />
|
|
3630
|
+
<div class="flex flex-column gap-05 min-w-0">
|
|
3631
|
+
<TextInput
|
|
3632
|
+
v-model="imageForm.src" label="Image URL" type="url" placeholder="https://example.com/image.jpg"
|
|
3633
|
+
@keydown.enter="submitImage"
|
|
3634
|
+
/>
|
|
3635
|
+
<TextInput v-model="imageForm.alt" label="Alt Text" placeholder="Describe the image" />
|
|
3636
|
+
<div class="flex gap-1">
|
|
3637
|
+
<TextInput
|
|
3638
|
+
v-model="imageForm.width" label="Width" placeholder="100% or 500px or auto"
|
|
3639
|
+
help="Examples: 100%, 500px, auto"
|
|
3640
|
+
/>
|
|
3641
|
+
<TextInput
|
|
3642
|
+
v-model="imageForm.height" label="Height" placeholder="auto or 300px"
|
|
3643
|
+
help="Examples: auto, 300px"
|
|
3644
|
+
/>
|
|
3645
|
+
</div>
|
|
3646
|
+
<SelectBtn
|
|
3647
|
+
v-model="imageForm.align" label="Alignment" :options="[
|
|
3648
|
+
{ value: 'full', label: 'Full width (default)', icon: 'width_full' },
|
|
3649
|
+
{ value: 'start', label: 'Float to start (text wraps)', icon: 'align_horizontal_left' },
|
|
3650
|
+
{ value: 'end', label: 'Float to end (text wraps)', icon: 'align_horizontal_right' },
|
|
3651
|
+
]"
|
|
3652
|
+
icon-only
|
|
3653
|
+
/>
|
|
3654
|
+
<TextInput v-model="imageForm.credit" label="Photo Credit" placeholder="Photographer name (optional)" />
|
|
3655
|
+
<TextInput
|
|
3656
|
+
v-model="imageForm.link" label="Link URL" type="url" placeholder="https://example.com (optional)"
|
|
3657
|
+
help="Make the image clickable by linking it to a URL"
|
|
3658
|
+
/>
|
|
3659
|
+
<CheckInput
|
|
3660
|
+
v-if="imageForm.link" v-model="imageForm.linkNewTab" label="Open link in new tab"
|
|
3661
|
+
/>
|
|
3662
|
+
<CheckInput
|
|
3663
|
+
v-model="imageForm.figcaption" label="Show alt text as caption"
|
|
3664
|
+
help="Photo credit will always be shown if provided"
|
|
3665
|
+
/>
|
|
3666
|
+
</div>
|
|
3642
3667
|
</div>
|
|
3643
|
-
<SelectInput
|
|
3644
|
-
v-model="imageForm.align" label="Alignment" :options="[
|
|
3645
|
-
{ value: 'full', label: 'Full width (default)' },
|
|
3646
|
-
{ value: 'start', label: 'Float to start (text wraps)' },
|
|
3647
|
-
{ value: 'end', label: 'Float to end (text wraps)' },
|
|
3648
|
-
]"
|
|
3649
|
-
help="Full width fills the container. Start/End float the image so text flows alongside."
|
|
3650
|
-
/>
|
|
3651
|
-
<TextInput v-model="imageForm.credit" label="Photo Credit" placeholder="Photographer name (optional)" />
|
|
3652
|
-
<TextInput
|
|
3653
|
-
v-model="imageForm.link" label="Link URL" type="url" placeholder="https://example.com (optional)"
|
|
3654
|
-
help="Make the image clickable by linking it to a URL"
|
|
3655
|
-
/>
|
|
3656
|
-
<CheckInput
|
|
3657
|
-
v-if="imageForm.link" v-model="imageForm.linkNewTab" label="Open link in new tab"
|
|
3658
|
-
/>
|
|
3659
|
-
<CheckInput
|
|
3660
|
-
v-model="imageForm.figcaption" label="Show alt text as caption"
|
|
3661
|
-
help="Photo credit will always be shown if provided"
|
|
3662
|
-
/>
|
|
3663
3668
|
<template #footer>
|
|
3664
3669
|
<div class="flex gap-05 w-100 ">
|
|
3665
3670
|
<Btn value="Cancel" flat thin @click="showImageModal = false" />
|
|
@@ -4001,6 +4006,19 @@ display: flex;
|
|
|
4001
4006
|
gap: 0.5rem;
|
|
4002
4007
|
}
|
|
4003
4008
|
|
|
4009
|
+
.image-dialog-layout {
|
|
4010
|
+
display: grid;
|
|
4011
|
+
grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr);
|
|
4012
|
+
gap: 1rem;
|
|
4013
|
+
align-items: start;
|
|
4014
|
+
}
|
|
4015
|
+
|
|
4016
|
+
@media (max-width: 910px) {
|
|
4017
|
+
.image-dialog-layout {
|
|
4018
|
+
grid-template-columns: 1fr;
|
|
4019
|
+
}
|
|
4020
|
+
}
|
|
4021
|
+
|
|
4004
4022
|
.content-area,
|
|
4005
4023
|
.preview-area {
|
|
4006
4024
|
flex: 1;
|
|
@@ -10,6 +10,7 @@ interface UseFileUploadProps {
|
|
|
10
10
|
capture?: boolean | 'user' | 'environment'
|
|
11
11
|
disabled?: boolean
|
|
12
12
|
namespace?: string
|
|
13
|
+
upload?: (file: File) => Promise<string>
|
|
13
14
|
onFileQueued?: (files: QueueFile[]) => void
|
|
14
15
|
onChange?: () => void
|
|
15
16
|
}
|
|
@@ -109,6 +110,12 @@ export function useFileUpload(props: UseFileUploadProps = {}) {
|
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
try {
|
|
113
|
+
if (props.upload) {
|
|
114
|
+
const pathKey = await props.upload(file.file)
|
|
115
|
+
pk.value.push(pathKey)
|
|
116
|
+
uploadedPathKeys.push(pathKey)
|
|
117
|
+
continue
|
|
118
|
+
}
|
|
112
119
|
const { data } = await files.upload(file.file, {
|
|
113
120
|
onUploadProgress: (e: ProgressEvent) => {
|
|
114
121
|
file.progress = (e.loaded / e.total) * 100 - 1
|
|
@@ -18,7 +18,9 @@ import {
|
|
|
18
18
|
ColorInput,
|
|
19
19
|
RangeInput,
|
|
20
20
|
EmailInput,
|
|
21
|
-
|
|
21
|
+
containsHtml,
|
|
22
|
+
getNestedValue,
|
|
23
|
+
richTextToPlainText
|
|
22
24
|
} from '@bagelink/vue'
|
|
23
25
|
import { h, isVNode } from 'vue'
|
|
24
26
|
|
|
@@ -388,6 +390,22 @@ export function useSchemaField<T extends { [key: string]: any }>(optns: UseSchem
|
|
|
388
390
|
])
|
|
389
391
|
}
|
|
390
392
|
|
|
393
|
+
if (!slotContent && mode === 'table' && typeof transformedValue === 'string') {
|
|
394
|
+
const plainText = richTextToPlainText(transformedValue)
|
|
395
|
+
if (containsHtml(transformedValue)) {
|
|
396
|
+
return h('div', { class: 'ellipsis-1', title: plainText }, plainText)
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
if (!slotContent && mode === 'table' && Component === RichText) {
|
|
401
|
+
const plainText = richTextToPlainText(String(transformedValue ?? ''))
|
|
402
|
+
return h(
|
|
403
|
+
'div',
|
|
404
|
+
{ class: 'ellipsis-1', title: plainText },
|
|
405
|
+
plainText
|
|
406
|
+
)
|
|
407
|
+
}
|
|
408
|
+
|
|
391
409
|
return slotContent || h(Component as any, props, componentSlots)
|
|
392
410
|
}
|
|
393
411
|
|
|
@@ -1259,6 +1259,7 @@ function applyDesignerConfig(config: Record<string, any>, prop: JSONSchemaProper
|
|
|
1259
1259
|
if (p['x-radio-inline']) config.inline = true
|
|
1260
1260
|
if (p['x-radio-thin']) config.thin = true
|
|
1261
1261
|
if (p['x-radio-hide-radio']) config.hideRadio = true
|
|
1262
|
+
if (p['x-radio-hide-label-when-image']) config.hideLabelWhenImage = true
|
|
1262
1263
|
set('align', 'x-radio-align')
|
|
1263
1264
|
set('textAlign', 'x-radio-text-align')
|
|
1264
1265
|
// Select
|
|
@@ -99,6 +99,7 @@ export interface FormField {
|
|
|
99
99
|
rangeMulti?: boolean
|
|
100
100
|
radioThin?: boolean
|
|
101
101
|
radioHideRadio?: boolean
|
|
102
|
+
radioHideLabelWhenImage?: boolean
|
|
102
103
|
radioAlign?: 'start' | 'center' | 'end'
|
|
103
104
|
/** Lay radio options out horizontally (inline) instead of stacked. */
|
|
104
105
|
radioInline?: boolean
|
|
@@ -165,6 +166,7 @@ export interface JSONSchemaProperty {
|
|
|
165
166
|
'x-range-multi'?: boolean
|
|
166
167
|
'x-radio-thin'?: boolean
|
|
167
168
|
'x-radio-hide-radio'?: boolean
|
|
169
|
+
'x-radio-hide-label-when-image'?: boolean
|
|
168
170
|
'x-radio-align'?: 'start' | 'center' | 'end'
|
|
169
171
|
'x-radio-inline'?: boolean
|
|
170
172
|
'x-radio-size'?: 's' | 'm' | 'l'
|
|
@@ -293,6 +295,7 @@ export function schemaToFields(schema: JSONSchemaObject | undefined): FormField[
|
|
|
293
295
|
rangeMulti: prop['x-range-multi'],
|
|
294
296
|
radioThin: prop['x-radio-thin'],
|
|
295
297
|
radioHideRadio: prop['x-radio-hide-radio'],
|
|
298
|
+
radioHideLabelWhenImage: prop['x-radio-hide-label-when-image'],
|
|
296
299
|
radioAlign: prop['x-ui']?.radioAlign ?? prop['x-radio-align'],
|
|
297
300
|
radioInline: prop['x-radio-inline'],
|
|
298
301
|
radioSize: prop['x-radio-size'],
|
|
@@ -457,6 +460,7 @@ export function fieldsToSchema(
|
|
|
457
460
|
if (field.rangeMulti === true) prop['x-range-multi'] = true
|
|
458
461
|
if (field.radioThin === true) prop['x-radio-thin'] = true
|
|
459
462
|
if (field.radioHideRadio === true) prop['x-radio-hide-radio'] = true
|
|
463
|
+
if (field.radioHideLabelWhenImage === true) prop['x-radio-hide-label-when-image'] = true
|
|
460
464
|
if (field.radioAlign) prop['x-ui'] = { ...prop['x-ui'], radioAlign: field.radioAlign }
|
|
461
465
|
if (field.radioInline === true) prop['x-radio-inline'] = true
|
|
462
466
|
if (field.radioSize) prop['x-radio-size'] = field.radioSize
|