@bagelink/vue 0.0.1014 → 0.0.1020
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/components/form/BglField.vue.d.ts.map +1 -1
- package/dist/components/form/FieldArray.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/layout/BottomMenu.vue.d.ts.map +1 -1
- package/dist/components/layout/TabsBody.vue.d.ts.map +1 -1
- package/dist/components/lightbox/index.d.ts.map +1 -1
- package/dist/composables/index.d.ts +2 -1
- package/dist/composables/index.d.ts.map +1 -1
- package/dist/editor-BPwswoA2.cjs +4 -0
- package/dist/editor-ChLRSWzW.js +4 -0
- package/dist/index.cjs +132 -144
- package/dist/index.mjs +132 -144
- package/dist/style.css +28 -20
- package/package.json +1 -1
- package/src/components/form/BglField.vue +9 -0
- package/src/components/form/FieldArray.vue +31 -22
- package/src/components/form/inputs/RichText/editor.css +15 -14
- package/src/components/form/inputs/RichText/index.vue +2 -2
- package/src/components/layout/BottomMenu.vue +1 -1
- package/src/components/layout/TabsBody.vue +2 -2
- package/src/components/lightbox/index.ts +0 -1
- package/src/composables/index.ts +3 -1
package/dist/style.css
CHANGED
|
@@ -605,8 +605,16 @@ data[data-v-6c27f163] {
|
|
|
605
605
|
transform: translateY(-2.6rem);
|
|
606
606
|
}
|
|
607
607
|
|
|
608
|
-
.itemBox
|
|
609
|
-
|
|
608
|
+
.itemBox{
|
|
609
|
+
/* border-top: 2px solid var(--bgl-gray); */
|
|
610
|
+
/* border-bottom: 2px solid var(--bgl-gray); */
|
|
611
|
+
background: var(--input-bg);
|
|
612
|
+
}
|
|
613
|
+
.itemBox .bagel-input input,
|
|
614
|
+
.itemBox .bagel-input textarea,
|
|
615
|
+
.itemBox .bagel-input select,
|
|
616
|
+
.itemBox .custom-select .input {
|
|
617
|
+
background: var(--bgl-white) !important;
|
|
610
618
|
}
|
|
611
619
|
|
|
612
620
|
.primary-checkbox input[data-v-73f1d9ad] {
|
|
@@ -1194,26 +1202,26 @@ pre code.hljs{
|
|
|
1194
1202
|
line-height: 1.65;
|
|
1195
1203
|
}
|
|
1196
1204
|
|
|
1197
|
-
.rich-text-editor[data-v-
|
|
1205
|
+
.rich-text-editor[data-v-8d91c8f8] {
|
|
1198
1206
|
background: var(--input-bg);
|
|
1199
1207
|
border: 1px solid var(--border-color);
|
|
1200
1208
|
transition: all 0.3s ease;
|
|
1201
1209
|
}
|
|
1202
|
-
.editor-container[data-v-
|
|
1210
|
+
.editor-container[data-v-8d91c8f8] {
|
|
1203
1211
|
display: flex;
|
|
1204
1212
|
gap: 1rem;
|
|
1205
1213
|
}
|
|
1206
|
-
.content-area[data-v-
|
|
1207
|
-
.preview-area[data-v-
|
|
1214
|
+
.content-area[data-v-8d91c8f8],
|
|
1215
|
+
.preview-area[data-v-8d91c8f8] {
|
|
1208
1216
|
flex: 1;
|
|
1209
1217
|
min-height: 200px;
|
|
1210
1218
|
background: var(--bgl-richtext-color);
|
|
1211
1219
|
}
|
|
1212
|
-
.split-view[data-v-
|
|
1220
|
+
.split-view[data-v-8d91c8f8] {
|
|
1213
1221
|
display: grid;
|
|
1214
1222
|
grid-template-columns: 1fr 1fr;
|
|
1215
1223
|
}
|
|
1216
|
-
.editableContent[data-v-
|
|
1224
|
+
.editableContent[data-v-8d91c8f8] {
|
|
1217
1225
|
width: 100%;
|
|
1218
1226
|
min-height: 240px;
|
|
1219
1227
|
height: 100%;
|
|
@@ -1221,7 +1229,7 @@ line-height: 1.65;
|
|
|
1221
1229
|
outline: none;
|
|
1222
1230
|
background: transparent;
|
|
1223
1231
|
}
|
|
1224
|
-
.html-editor[data-v-
|
|
1232
|
+
.html-editor[data-v-8d91c8f8] {
|
|
1225
1233
|
width: 100%;
|
|
1226
1234
|
height: 100%;
|
|
1227
1235
|
min-height: 200px;
|
|
@@ -1232,12 +1240,12 @@ line-height: 1.65;
|
|
|
1232
1240
|
color: white;
|
|
1233
1241
|
background-color: var(--bgl-black);
|
|
1234
1242
|
}
|
|
1235
|
-
.preview-area[data-v-
|
|
1243
|
+
.preview-area[data-v-8d91c8f8] {
|
|
1236
1244
|
font-family: monospace;
|
|
1237
1245
|
white-space: pre-wrap;
|
|
1238
1246
|
overflow-x: auto;
|
|
1239
1247
|
}
|
|
1240
|
-
.fullscreen-mode[data-v-
|
|
1248
|
+
.fullscreen-mode[data-v-8d91c8f8] {
|
|
1241
1249
|
position: fixed;
|
|
1242
1250
|
top: 0;
|
|
1243
1251
|
left: 0;
|
|
@@ -1246,15 +1254,15 @@ line-height: 1.65;
|
|
|
1246
1254
|
z-index: 9999;
|
|
1247
1255
|
padding: 2rem;
|
|
1248
1256
|
}
|
|
1249
|
-
.fullscreen-mode .editor-container[data-v-
|
|
1257
|
+
.fullscreen-mode .editor-container[data-v-8d91c8f8] {
|
|
1250
1258
|
height: calc(100vh - 4rem);
|
|
1251
1259
|
}
|
|
1252
|
-
.fullscreen-mode .content-area[data-v-
|
|
1253
|
-
.fullscreen-mode .preview-area[data-v-
|
|
1260
|
+
.fullscreen-mode .content-area[data-v-8d91c8f8],
|
|
1261
|
+
.fullscreen-mode .preview-area[data-v-8d91c8f8] {
|
|
1254
1262
|
height: 100%;
|
|
1255
1263
|
overflow-y: auto;
|
|
1256
1264
|
}
|
|
1257
|
-
.fullscreen-mode .code-editor[data-v-
|
|
1265
|
+
.fullscreen-mode .code-editor[data-v-8d91c8f8]{
|
|
1258
1266
|
height: 100% !important;
|
|
1259
1267
|
}
|
|
1260
1268
|
.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
|
|
@@ -1670,7 +1678,7 @@ line-height: 1.65;
|
|
|
1670
1678
|
gap: 0;
|
|
1671
1679
|
}
|
|
1672
1680
|
|
|
1673
|
-
.bgl_bottombar[data-v-
|
|
1681
|
+
.bgl_bottombar[data-v-4faeb847] {
|
|
1674
1682
|
background-color: var(--bgl-primary);
|
|
1675
1683
|
color: var(--bgl-light-text);
|
|
1676
1684
|
grid-template-columns: repeat(auto-fill, var(--bgl_bottombar-btn-width));
|
|
@@ -1679,16 +1687,16 @@ line-height: 1.65;
|
|
|
1679
1687
|
padding: 0;
|
|
1680
1688
|
--bgl_bottombar-btn-width: 62px;
|
|
1681
1689
|
}
|
|
1682
|
-
.bgl_bottombar[data-v-
|
|
1690
|
+
.bgl_bottombar[data-v-4faeb847]>* {
|
|
1683
1691
|
width: var(--bgl_bottombar-btn-width);
|
|
1684
1692
|
}
|
|
1685
|
-
.bgl_bottombar[data-v-
|
|
1693
|
+
.bgl_bottombar[data-v-4faeb847]::-webkit-scrollbar {
|
|
1686
1694
|
display: none;
|
|
1687
1695
|
}
|
|
1688
|
-
.bgl_bottombar .nav-button[data-v-
|
|
1696
|
+
.bgl_bottombar .nav-button[data-v-4faeb847] {
|
|
1689
1697
|
border-radius: var(--card-border-radius);
|
|
1690
1698
|
}
|
|
1691
|
-
.bgl_bottombar .router-link-active[data-v-
|
|
1699
|
+
.bgl_bottombar .router-link-active[data-v-4faeb847] {
|
|
1692
1700
|
background: var(--bgl-popup-bg);
|
|
1693
1701
|
color: var(--bgl-primary) !important;
|
|
1694
1702
|
}
|
package/package.json
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
ToggleInput,
|
|
12
12
|
bindAttrs,
|
|
13
13
|
classify,
|
|
14
|
+
BagelForm
|
|
14
15
|
} from '@bagelink/vue'
|
|
15
16
|
import TabsNav from '../layout/TabsNav.vue'
|
|
16
17
|
|
|
@@ -42,6 +43,7 @@ const is = $computed(() => {
|
|
|
42
43
|
if (props.field.$el === 'file') return FileUpload
|
|
43
44
|
if (props.field.$el === 'date') return DateInput
|
|
44
45
|
if (props.field.$el === 'tabs') return TabsNav
|
|
46
|
+
if (props.field.$el === 'form') return BagelForm
|
|
45
47
|
return props.field.$el ?? 'div'
|
|
46
48
|
})
|
|
47
49
|
|
|
@@ -68,6 +70,8 @@ function setFieldData(key: string, val: any) {
|
|
|
68
70
|
return data
|
|
69
71
|
}
|
|
70
72
|
|
|
73
|
+
const isForm = $computed(() => props.field.$el === 'form' || props.field.$el === BagelForm)
|
|
74
|
+
|
|
71
75
|
function getFieldData(obj: any, key: string) {
|
|
72
76
|
if (typeof obj !== 'object' || obj === null) return obj
|
|
73
77
|
const keys = key.split(objPathRegex)
|
|
@@ -84,12 +88,17 @@ function getFieldData(obj: any, key: string) {
|
|
|
84
88
|
|
|
85
89
|
const fieldData = $computed({
|
|
86
90
|
set: (val: any) => {
|
|
91
|
+
if (isForm) {
|
|
92
|
+
emit('update:modelValue', val)
|
|
93
|
+
return
|
|
94
|
+
}
|
|
87
95
|
if (!props.field.id) return
|
|
88
96
|
const data = setFieldData(props.field.id, val)
|
|
89
97
|
emit('update:modelValue', data)
|
|
90
98
|
},
|
|
91
99
|
get: () => {
|
|
92
100
|
if (props.field.id) return getFieldData(props.modelValue, props.field.id)
|
|
101
|
+
if (isForm) return props.modelValue
|
|
93
102
|
return props.field.defaultValue ?? ''
|
|
94
103
|
},
|
|
95
104
|
})
|
|
@@ -54,21 +54,21 @@ function addItem() {
|
|
|
54
54
|
emitValue()
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
const computedField = $computed(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
) as Field<Record<string, any>>
|
|
57
|
+
// const computedField = $computed(
|
|
58
|
+
// () => ({
|
|
59
|
+
// label: props.label,
|
|
60
|
+
// placeholder: props.placeholder,
|
|
61
|
+
// children: props.children,
|
|
62
|
+
// class: props.class,
|
|
63
|
+
// attrs: props.attrs,
|
|
64
|
+
// required: props.required,
|
|
65
|
+
// disabled: props.disabled,
|
|
66
|
+
// helptext: props.helptext,
|
|
67
|
+
// options: props.options,
|
|
68
|
+
// defaultValue: props.defaultValue,
|
|
69
|
+
// $el: props.el,
|
|
70
|
+
// }) as Field<T>
|
|
71
|
+
// ) as Field<Record<string, any>>
|
|
72
72
|
</script>
|
|
73
73
|
|
|
74
74
|
<template>
|
|
@@ -76,8 +76,8 @@ const computedField = $computed(
|
|
|
76
76
|
<p class="label mb-05">
|
|
77
77
|
{{ label }}
|
|
78
78
|
</p>
|
|
79
|
-
<div>
|
|
80
|
-
<
|
|
79
|
+
<div class="ps-05 border-start">
|
|
80
|
+
<div v-for="(_, i) in data" :key="i" outline thin class="mb-05 itemBox transition p-05">
|
|
81
81
|
<BglForm v-if="schema" v-model="data[i]" :schema="schema" @update:model-value="emitValue" />
|
|
82
82
|
<Btn
|
|
83
83
|
v-if="props.delete"
|
|
@@ -88,16 +88,25 @@ const computedField = $computed(
|
|
|
88
88
|
flat
|
|
89
89
|
@click="deleteItem(i)"
|
|
90
90
|
/>
|
|
91
|
-
</
|
|
92
|
-
<Btn v-if="add" icon="add" color="gray" class="
|
|
91
|
+
</div>
|
|
92
|
+
<Btn v-if="add" thin icon="add" color="gray" class="txt12" @click="addItem">
|
|
93
93
|
<p>Add {{ label }}</p>
|
|
94
94
|
</Btn>
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
</template>
|
|
98
98
|
|
|
99
|
-
<style
|
|
100
|
-
.itemBox
|
|
101
|
-
|
|
99
|
+
<style>
|
|
100
|
+
.itemBox{
|
|
101
|
+
/* border-top: 2px solid var(--bgl-gray); */
|
|
102
|
+
/* border-bottom: 2px solid var(--bgl-gray); */
|
|
103
|
+
background: var(--input-bg);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.itemBox .bagel-input input,
|
|
107
|
+
.itemBox .bagel-input textarea,
|
|
108
|
+
.itemBox .bagel-input select,
|
|
109
|
+
.itemBox .custom-select .input {
|
|
110
|
+
background: var(--bgl-white) !important;
|
|
102
111
|
}
|
|
103
112
|
</style>
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
body {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 8px;
|
|
4
|
+
min-height: 200px;
|
|
5
|
+
font-family: sans-serif;
|
|
6
|
+
line-height: 1.5;
|
|
7
|
+
color: inherit;
|
|
8
|
+
background: transparent;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
table {
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
border-collapse: collapse;
|
|
13
|
+
margin-bottom: 1rem;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
th,
|
|
16
17
|
td {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
padding: 1rem;
|
|
19
|
+
text-align: left;
|
|
20
|
+
border: 1px solid #2a2a2a;
|
|
21
|
+
line-height: 1.5;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
th {
|
|
24
|
-
|
|
25
|
-
}
|
|
25
|
+
background-color: #f4f4f4;
|
|
26
|
+
}
|
|
@@ -50,7 +50,7 @@ watch(() => editor.state.content, (newValue) => {
|
|
|
50
50
|
</script>
|
|
51
51
|
|
|
52
52
|
<template>
|
|
53
|
-
<div class="rich-text-editor rounded pt-05 px-05 pb-075" :class="{ 'fullscreen-mode': editor.state.isFullscreen }">
|
|
53
|
+
<div class="rich-text-editor rounded pt-05 px-05 pb-075 mb-05" :class="{ 'fullscreen-mode': editor.state.isFullscreen }">
|
|
54
54
|
<Toolbar
|
|
55
55
|
v-if="editor.state.hasInit" :config="toolbarConfig" :selectedStyles="editor.state.selectedStyles"
|
|
56
56
|
@action="editor.handleToolbarAction"
|
|
@@ -148,4 +148,4 @@ line-height: 1.65;
|
|
|
148
148
|
.fullscreen-mode .code-editor{
|
|
149
149
|
height: 100% !important;
|
|
150
150
|
}
|
|
151
|
-
</style
|
|
151
|
+
</style>
|
|
@@ -11,7 +11,6 @@ let clickHandler: ((e: MouseEvent) => any) = (_e: MouseEvent) => void 0
|
|
|
11
11
|
|
|
12
12
|
const lightboxDirective: Directive = {
|
|
13
13
|
mounted(el: HTMLElement, binding) {
|
|
14
|
-
el.classList.add('hover')
|
|
15
14
|
const item = bindingToItem(binding, el)
|
|
16
15
|
groupHandler(item)
|
|
17
16
|
clickHandler = (e: MouseEvent) => { openClickHandler(e, el, binding) }
|
package/src/composables/index.ts
CHANGED
|
@@ -26,7 +26,7 @@ export function useBglSchema<T = { [key: string]: unknown }>(
|
|
|
26
26
|
return getFallbackSchema(data, showFields)
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function
|
|
29
|
+
export function localRef<T>(
|
|
30
30
|
key: string,
|
|
31
31
|
initialValue: T
|
|
32
32
|
): [T] extends [Ref<any, any>] ?
|
|
@@ -42,3 +42,5 @@ export function useLocalStorage<T>(
|
|
|
42
42
|
|
|
43
43
|
return value
|
|
44
44
|
}
|
|
45
|
+
|
|
46
|
+
export const useLocalStorage = localRef
|