lf-pagebuilder-vue 0.0.14 → 0.0.16
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 +45 -22
- package/dist/components/BodySection.vue.d.ts +55 -0
- package/dist/components/ColConfig.vue.d.ts +55 -0
- package/dist/components/ComponentsBox.vue.d.ts +36 -0
- package/dist/components/FeedComponent.vue.d.ts +72 -0
- package/dist/components/FieldsForm.vue.d.ts +55 -0
- package/dist/components/GlobalConfig.vue.d.ts +81 -0
- package/dist/components/InitialComponent.vue.d.ts +93 -0
- package/dist/components/Pagebuilder.vue.d.ts +31 -0
- package/dist/components/RowConfig.vue.d.ts +38 -0
- package/dist/components/SourceFilter.vue.d.ts +36 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +95 -655
- package/dist/index.js +1084 -987
- package/dist/limbo/index.d.ts +10 -0
- package/dist/limbo/tokenHandler.d.ts +81 -0
- package/dist/limbo.cjs +1 -0
- package/dist/limbo.d.ts +3 -0
- package/dist/limbo.js +90 -0
- package/dist/mocks/libreria-astro-lefebvre.d.ts +77 -0
- package/dist/symfony-entry.d.ts +29 -0
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -126,22 +126,20 @@ import { Pagebuilder } from 'lf-pagebuilder-vue';
|
|
|
126
126
|
|
|
127
127
|
### Dependencias requeridas en el proyecto padre
|
|
128
128
|
|
|
129
|
-
El proyecto que use este Pagebuilder
|
|
129
|
+
El proyecto que use este Pagebuilder solo necesita instalar `lf-pagebuilder-vue`. La librería de componentes (`libreria-astro-lefebvre`) se instala automáticamente como dependencia transitiva:
|
|
130
130
|
|
|
131
131
|
```bash
|
|
132
|
-
npm install vue@^3.3.0 vuedraggable@^4.1.0 @vueup/vue-quill@^1.2.0
|
|
132
|
+
npm install lf-pagebuilder-vue@latest vue@^3.3.0 vuedraggable@^4.1.0 @vueup/vue-quill@^1.2.0
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
| Dependencia |
|
|
136
|
-
|
|
137
|
-
| `vue` |
|
|
138
|
-
| `
|
|
139
|
-
|
|
|
140
|
-
|
|
|
135
|
+
| Dependencia | Tipo | Descripción |
|
|
136
|
+
|-------------|------|-------------|
|
|
137
|
+
| `lf-pagebuilder-vue` | directa | Page Builder (incluye `libreria-astro-lefebvre` como dep) |
|
|
138
|
+
| `vue` | peerDep | Framework Vue 3 |
|
|
139
|
+
| `vuedraggable` | peerDep | Drag & drop para Vue 3 |
|
|
140
|
+
| `@vueup/vue-quill` | peerDep | Editor de texto enriquecido |
|
|
141
141
|
|
|
142
|
-
### Configuración
|
|
143
|
-
|
|
144
|
-
#### En proyectos Astro
|
|
142
|
+
### Configuración en proyectos Astro
|
|
145
143
|
|
|
146
144
|
El proyecto debe tener las integraciones de Vue y Tailwind:
|
|
147
145
|
|
|
@@ -153,8 +151,6 @@ En `astro.config.mjs`:
|
|
|
153
151
|
|
|
154
152
|
```js
|
|
155
153
|
import { defineConfig } from 'astro/config';
|
|
156
|
-
import { searchForWorkspaceRoot } from 'vite';
|
|
157
|
-
import path from 'path';
|
|
158
154
|
import vue from '@astrojs/vue';
|
|
159
155
|
import tailwindcss from '@tailwindcss/vite';
|
|
160
156
|
|
|
@@ -163,20 +159,47 @@ export default defineConfig({
|
|
|
163
159
|
|
|
164
160
|
vite: {
|
|
165
161
|
plugins: [tailwindcss()],
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
// Necesario si usas npm link con librerías hermanas
|
|
169
|
-
allow: [
|
|
170
|
-
searchForWorkspaceRoot(process.cwd()),
|
|
171
|
-
path.resolve(process.cwd(), '..'),
|
|
172
|
-
],
|
|
173
|
-
},
|
|
162
|
+
ssr: {
|
|
163
|
+
noExternal: ['libreria-astro-lefebvre', 'lf-pagebuilder-vue'],
|
|
174
164
|
},
|
|
175
165
|
},
|
|
176
166
|
});
|
|
177
167
|
```
|
|
178
168
|
|
|
179
|
-
|
|
169
|
+
### Integración con Limbo (gestión de imágenes)
|
|
170
|
+
|
|
171
|
+
Si se quiere usar el sistema de imágenes Limbo desde el Pagebuilder:
|
|
172
|
+
|
|
173
|
+
**1. Variables de entorno** (`.env`):
|
|
174
|
+
|
|
175
|
+
```env
|
|
176
|
+
PUBLIC_LIMBO_PUBLIC_KEY=pk_tu_public_key
|
|
177
|
+
IS_PROD=FALSE
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**2. Crear endpoint proxy** (`src/pages/api/limbo-token.ts`):
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
import { createLimboTokenHandler } from 'lf-pagebuilder-vue/limbo';
|
|
184
|
+
|
|
185
|
+
export const POST = createLimboTokenHandler({
|
|
186
|
+
publicKey: import.meta.env.PUBLIC_LIMBO_PUBLIC_KEY,
|
|
187
|
+
isProduction: import.meta.env.IS_PROD === 'TRUE'
|
|
188
|
+
});
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**3. Pasar las props al Pagebuilder:**
|
|
192
|
+
|
|
193
|
+
```astro
|
|
194
|
+
<Pagebuilder
|
|
195
|
+
limboPublicKey={import.meta.env.PUBLIC_LIMBO_PUBLIC_KEY}
|
|
196
|
+
isProduction={import.meta.env.IS_PROD === 'TRUE'}
|
|
197
|
+
inputId="mi-input"
|
|
198
|
+
client:only="vue"
|
|
199
|
+
/>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
La URL de la API de Limbo se determina automáticamente según `isProduction`.
|
|
180
203
|
|
|
181
204
|
---
|
|
182
205
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface PageSection {
|
|
4
|
+
section: string;
|
|
5
|
+
config: any;
|
|
6
|
+
rows: any[];
|
|
7
|
+
}
|
|
8
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
9
|
+
isComponentMode: BooleanConstructor;
|
|
10
|
+
fullwidthMode: BooleanConstructor;
|
|
11
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
12
|
+
sectionSelected: StringConstructor;
|
|
13
|
+
removeComponent: PropType<(obj: any, section: string) => void>;
|
|
14
|
+
cloneComponent: PropType<(obj: any, section: string) => void>;
|
|
15
|
+
addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
|
|
16
|
+
addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
17
|
+
addRow: PropType<(index: number | null, section: string) => void>;
|
|
18
|
+
removeRow: PropType<(index: number, section: string) => void>;
|
|
19
|
+
removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
|
|
20
|
+
moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
21
|
+
moveRow: PropType<(rowIndex: number, section: string, direction?: "up" | "down") => void>;
|
|
22
|
+
updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
|
|
23
|
+
updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
|
|
24
|
+
renderApiDomain: StringConstructor;
|
|
25
|
+
isProduction: {
|
|
26
|
+
type: BooleanConstructor;
|
|
27
|
+
default: boolean;
|
|
28
|
+
};
|
|
29
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
30
|
+
isComponentMode: BooleanConstructor;
|
|
31
|
+
fullwidthMode: BooleanConstructor;
|
|
32
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
33
|
+
sectionSelected: StringConstructor;
|
|
34
|
+
removeComponent: PropType<(obj: any, section: string) => void>;
|
|
35
|
+
cloneComponent: PropType<(obj: any, section: string) => void>;
|
|
36
|
+
addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
|
|
37
|
+
addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
38
|
+
addRow: PropType<(index: number | null, section: string) => void>;
|
|
39
|
+
removeRow: PropType<(index: number, section: string) => void>;
|
|
40
|
+
removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
|
|
41
|
+
moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
42
|
+
moveRow: PropType<(rowIndex: number, section: string, direction?: "up" | "down") => void>;
|
|
43
|
+
updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
|
|
44
|
+
updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
|
|
45
|
+
renderApiDomain: StringConstructor;
|
|
46
|
+
isProduction: {
|
|
47
|
+
type: BooleanConstructor;
|
|
48
|
+
default: boolean;
|
|
49
|
+
};
|
|
50
|
+
}>> & Readonly<{}>, {
|
|
51
|
+
isProduction: boolean;
|
|
52
|
+
isComponentMode: boolean;
|
|
53
|
+
fullwidthMode: boolean;
|
|
54
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
55
|
+
export default _default;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface PageSection {
|
|
4
|
+
section: string;
|
|
5
|
+
config: any;
|
|
6
|
+
rows: Array<{
|
|
7
|
+
config: any;
|
|
8
|
+
columns: Array<{
|
|
9
|
+
config: {
|
|
10
|
+
width?: string;
|
|
11
|
+
gap?: string;
|
|
12
|
+
flexDirection?: string;
|
|
13
|
+
};
|
|
14
|
+
components: any[];
|
|
15
|
+
}>;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
19
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
20
|
+
rowIndex: {
|
|
21
|
+
type: NumberConstructor;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
columnIndex: {
|
|
25
|
+
type: NumberConstructor;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
fullwidthMode: BooleanConstructor;
|
|
29
|
+
addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
30
|
+
updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
|
|
31
|
+
removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
|
|
32
|
+
addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
|
|
33
|
+
moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
34
|
+
section: StringConstructor;
|
|
35
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
36
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
37
|
+
rowIndex: {
|
|
38
|
+
type: NumberConstructor;
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
columnIndex: {
|
|
42
|
+
type: NumberConstructor;
|
|
43
|
+
required: true;
|
|
44
|
+
};
|
|
45
|
+
fullwidthMode: BooleanConstructor;
|
|
46
|
+
addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
47
|
+
updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
|
|
48
|
+
removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
|
|
49
|
+
addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
|
|
50
|
+
moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
|
|
51
|
+
section: StringConstructor;
|
|
52
|
+
}>> & Readonly<{}>, {
|
|
53
|
+
fullwidthMode: boolean;
|
|
54
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
55
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
interface ColumnToInsert {
|
|
2
|
+
rowIndex: number | null;
|
|
3
|
+
columnIndex: number | null;
|
|
4
|
+
section: string | null;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
7
|
+
isComponentMode: boolean;
|
|
8
|
+
fullwidthMode: boolean;
|
|
9
|
+
columnToInsert: ColumnToInsert;
|
|
10
|
+
addComponentToColumn: (component: any) => void;
|
|
11
|
+
renderApiDomain: string;
|
|
12
|
+
toggleComponentModeFunction: () => void;
|
|
13
|
+
isProduction: boolean;
|
|
14
|
+
components: Record<string, any>;
|
|
15
|
+
excludedCategories?: string[];
|
|
16
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
17
|
+
isComponentMode: boolean;
|
|
18
|
+
fullwidthMode: boolean;
|
|
19
|
+
columnToInsert: ColumnToInsert;
|
|
20
|
+
addComponentToColumn: (component: any) => void;
|
|
21
|
+
renderApiDomain: string;
|
|
22
|
+
toggleComponentModeFunction: () => void;
|
|
23
|
+
isProduction: boolean;
|
|
24
|
+
components: Record<string, any>;
|
|
25
|
+
excludedCategories?: string[];
|
|
26
|
+
}>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
27
|
+
export default _default;
|
|
28
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
29
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
30
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
31
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
32
|
+
} : {
|
|
33
|
+
type: import('vue').PropType<T[K]>;
|
|
34
|
+
required: true;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface ComponentField {
|
|
4
|
+
name: string;
|
|
5
|
+
label: string;
|
|
6
|
+
type: string;
|
|
7
|
+
mappedTo?: string;
|
|
8
|
+
example_value?: string | boolean;
|
|
9
|
+
}
|
|
10
|
+
interface ComponentObject {
|
|
11
|
+
id?: string;
|
|
12
|
+
name: string;
|
|
13
|
+
fields: ComponentField[];
|
|
14
|
+
repeat_data?: FinalCriteria | null;
|
|
15
|
+
}
|
|
16
|
+
interface FinalCriteria {
|
|
17
|
+
dynamicUpdate?: boolean;
|
|
18
|
+
elementCount?: number;
|
|
19
|
+
orientation?: 'horizontal' | 'vertical';
|
|
20
|
+
name?: string;
|
|
21
|
+
url?: string;
|
|
22
|
+
mapping?: Array<{
|
|
23
|
+
fieldName: string;
|
|
24
|
+
mappedTo: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
28
|
+
object: {
|
|
29
|
+
type: PropType<ComponentObject>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
toggleFeedSection: {
|
|
33
|
+
type: PropType<() => void>;
|
|
34
|
+
required: true;
|
|
35
|
+
};
|
|
36
|
+
updateObjectByFeedContent: {
|
|
37
|
+
type: PropType<(mappeo: Array<{
|
|
38
|
+
fieldName: string;
|
|
39
|
+
mappedTo: string;
|
|
40
|
+
value: any;
|
|
41
|
+
}>, criteria: FinalCriteria | null) => void>;
|
|
42
|
+
required: true;
|
|
43
|
+
};
|
|
44
|
+
isProduction: {
|
|
45
|
+
type: BooleanConstructor;
|
|
46
|
+
default: boolean;
|
|
47
|
+
};
|
|
48
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
49
|
+
object: {
|
|
50
|
+
type: PropType<ComponentObject>;
|
|
51
|
+
required: true;
|
|
52
|
+
};
|
|
53
|
+
toggleFeedSection: {
|
|
54
|
+
type: PropType<() => void>;
|
|
55
|
+
required: true;
|
|
56
|
+
};
|
|
57
|
+
updateObjectByFeedContent: {
|
|
58
|
+
type: PropType<(mappeo: Array<{
|
|
59
|
+
fieldName: string;
|
|
60
|
+
mappedTo: string;
|
|
61
|
+
value: any;
|
|
62
|
+
}>, criteria: FinalCriteria | null) => void>;
|
|
63
|
+
required: true;
|
|
64
|
+
};
|
|
65
|
+
isProduction: {
|
|
66
|
+
type: BooleanConstructor;
|
|
67
|
+
default: boolean;
|
|
68
|
+
};
|
|
69
|
+
}>> & Readonly<{}>, {
|
|
70
|
+
isProduction: boolean;
|
|
71
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
72
|
+
export default _default;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface ComponentField {
|
|
4
|
+
name: string;
|
|
5
|
+
label: string;
|
|
6
|
+
type: 'text' | 'textArea' | 'image' | 'select' | 'boolean';
|
|
7
|
+
mandatory?: boolean;
|
|
8
|
+
example_value?: string | boolean;
|
|
9
|
+
options?: string[];
|
|
10
|
+
image_cuts?: Array<{
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
label: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
interface ComponentObject {
|
|
18
|
+
id?: string;
|
|
19
|
+
name: string;
|
|
20
|
+
fields: ComponentField[];
|
|
21
|
+
}
|
|
22
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
23
|
+
object: {
|
|
24
|
+
type: PropType<ComponentObject>;
|
|
25
|
+
required: true;
|
|
26
|
+
};
|
|
27
|
+
toggleShowForm: {
|
|
28
|
+
type: PropType<() => void>;
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
showForm: {
|
|
32
|
+
type: BooleanConstructor;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
35
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
36
|
+
fieldUpdated: (fieldName: string, value: string | boolean) => void;
|
|
37
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
38
|
+
object: {
|
|
39
|
+
type: PropType<ComponentObject>;
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
toggleShowForm: {
|
|
43
|
+
type: PropType<() => void>;
|
|
44
|
+
required: true;
|
|
45
|
+
};
|
|
46
|
+
showForm: {
|
|
47
|
+
type: BooleanConstructor;
|
|
48
|
+
default: boolean;
|
|
49
|
+
};
|
|
50
|
+
}>> & Readonly<{
|
|
51
|
+
onFieldUpdated?: ((fieldName: string, value: string | boolean) => any) | undefined;
|
|
52
|
+
}>, {
|
|
53
|
+
showForm: boolean;
|
|
54
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
55
|
+
export default _default;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface PageSection {
|
|
4
|
+
section: string;
|
|
5
|
+
config: {
|
|
6
|
+
width?: string;
|
|
7
|
+
};
|
|
8
|
+
rows: any[];
|
|
9
|
+
}
|
|
10
|
+
interface PageParameters {
|
|
11
|
+
global: {
|
|
12
|
+
sidebarEnabled: boolean;
|
|
13
|
+
renderAsBodyPart: boolean;
|
|
14
|
+
headSlot: string;
|
|
15
|
+
bodyBeginSlot: string;
|
|
16
|
+
footerSlot: string;
|
|
17
|
+
};
|
|
18
|
+
seo: {
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
robots: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
25
|
+
isComponentMode: BooleanConstructor;
|
|
26
|
+
fullwidthMode: BooleanConstructor;
|
|
27
|
+
debugMode: BooleanConstructor;
|
|
28
|
+
submitForm: BooleanConstructor;
|
|
29
|
+
toggleComponentModeFunction: PropType<() => void>;
|
|
30
|
+
toggleFullwidthMode: PropType<() => void>;
|
|
31
|
+
importConfigurationFunction: PropType<(config: any) => void>;
|
|
32
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
33
|
+
sectionSelected: StringConstructor;
|
|
34
|
+
availableSections: PropType<string[]>;
|
|
35
|
+
parametersPageConfiguration: PropType<PageParameters>;
|
|
36
|
+
renderApiDomain: StringConstructor;
|
|
37
|
+
inputId: PropType<string | null>;
|
|
38
|
+
}>, {
|
|
39
|
+
validateSeo: () => void;
|
|
40
|
+
importConfig: import('vue').Ref<string, string>;
|
|
41
|
+
showAdvancedConfig: import('vue').Ref<boolean, boolean>;
|
|
42
|
+
previewFunction: () => void;
|
|
43
|
+
importFunction: () => void;
|
|
44
|
+
exportFunction: () => void;
|
|
45
|
+
saveButtonAction: () => void;
|
|
46
|
+
loadFromLocalStorage: () => void;
|
|
47
|
+
toggleExpandScreen: () => void;
|
|
48
|
+
sectionWidth: import('vue').WritableComputedRef<string, string>;
|
|
49
|
+
isSaved: import('vue').Ref<boolean, boolean>;
|
|
50
|
+
componentRoot: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
|
|
51
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("update:sectionSelected" | "update:parametersPageConfiguration.global.sidebarEnabled" | "update:parametersPageConfiguration.global.renderAsBodyPart" | "update:parametersPageConfiguration.global.headSlot" | "update:parametersPageConfiguration.global.bodyBeginSlot" | "update:parametersPageConfiguration.global.footerSlot" | "update:parametersPageConfiguration.seo.robots" | "update:parametersPageConfiguration.seo.title" | "update:parametersPageConfiguration.seo.description")[], "update:sectionSelected" | "update:parametersPageConfiguration.global.sidebarEnabled" | "update:parametersPageConfiguration.global.renderAsBodyPart" | "update:parametersPageConfiguration.global.headSlot" | "update:parametersPageConfiguration.global.bodyBeginSlot" | "update:parametersPageConfiguration.global.footerSlot" | "update:parametersPageConfiguration.seo.robots" | "update:parametersPageConfiguration.seo.title" | "update:parametersPageConfiguration.seo.description", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
52
|
+
isComponentMode: BooleanConstructor;
|
|
53
|
+
fullwidthMode: BooleanConstructor;
|
|
54
|
+
debugMode: BooleanConstructor;
|
|
55
|
+
submitForm: BooleanConstructor;
|
|
56
|
+
toggleComponentModeFunction: PropType<() => void>;
|
|
57
|
+
toggleFullwidthMode: PropType<() => void>;
|
|
58
|
+
importConfigurationFunction: PropType<(config: any) => void>;
|
|
59
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
60
|
+
sectionSelected: StringConstructor;
|
|
61
|
+
availableSections: PropType<string[]>;
|
|
62
|
+
parametersPageConfiguration: PropType<PageParameters>;
|
|
63
|
+
renderApiDomain: StringConstructor;
|
|
64
|
+
inputId: PropType<string | null>;
|
|
65
|
+
}>> & Readonly<{
|
|
66
|
+
"onUpdate:sectionSelected"?: ((...args: any[]) => any) | undefined;
|
|
67
|
+
"onUpdate:parametersPageConfiguration.global.sidebarEnabled"?: ((...args: any[]) => any) | undefined;
|
|
68
|
+
"onUpdate:parametersPageConfiguration.global.renderAsBodyPart"?: ((...args: any[]) => any) | undefined;
|
|
69
|
+
"onUpdate:parametersPageConfiguration.global.headSlot"?: ((...args: any[]) => any) | undefined;
|
|
70
|
+
"onUpdate:parametersPageConfiguration.global.bodyBeginSlot"?: ((...args: any[]) => any) | undefined;
|
|
71
|
+
"onUpdate:parametersPageConfiguration.global.footerSlot"?: ((...args: any[]) => any) | undefined;
|
|
72
|
+
"onUpdate:parametersPageConfiguration.seo.robots"?: ((...args: any[]) => any) | undefined;
|
|
73
|
+
"onUpdate:parametersPageConfiguration.seo.title"?: ((...args: any[]) => any) | undefined;
|
|
74
|
+
"onUpdate:parametersPageConfiguration.seo.description"?: ((...args: any[]) => any) | undefined;
|
|
75
|
+
}>, {
|
|
76
|
+
isComponentMode: boolean;
|
|
77
|
+
fullwidthMode: boolean;
|
|
78
|
+
debugMode: boolean;
|
|
79
|
+
submitForm: boolean;
|
|
80
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
81
|
+
export default _default;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface ComponentField {
|
|
4
|
+
name: string;
|
|
5
|
+
label: string;
|
|
6
|
+
type: 'text' | 'textArea' | 'image' | 'select' | 'boolean';
|
|
7
|
+
mandatory?: boolean;
|
|
8
|
+
example_value?: string | boolean;
|
|
9
|
+
mappedTo?: string;
|
|
10
|
+
options?: string[];
|
|
11
|
+
image_cuts?: Array<{
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
label: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
interface RepeatData {
|
|
19
|
+
dynamicUpdate?: boolean;
|
|
20
|
+
elementCount?: number;
|
|
21
|
+
orientation?: 'horizontal' | 'vertical';
|
|
22
|
+
name?: string;
|
|
23
|
+
url?: string;
|
|
24
|
+
mapping?: Array<{
|
|
25
|
+
fieldName: string;
|
|
26
|
+
mappedTo: string;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
interface ComponentObject {
|
|
30
|
+
id?: string;
|
|
31
|
+
name: string;
|
|
32
|
+
component_name: string;
|
|
33
|
+
description: string;
|
|
34
|
+
category: string;
|
|
35
|
+
framework: string;
|
|
36
|
+
tags: string[];
|
|
37
|
+
fields: ComponentField[];
|
|
38
|
+
repeat_data?: RepeatData | null;
|
|
39
|
+
}
|
|
40
|
+
interface ColumnToInsert {
|
|
41
|
+
rowIndex: number | null;
|
|
42
|
+
columnIndex: number | null;
|
|
43
|
+
section: string | null;
|
|
44
|
+
}
|
|
45
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
46
|
+
object: {
|
|
47
|
+
type: PropType<ComponentObject>;
|
|
48
|
+
required: true;
|
|
49
|
+
};
|
|
50
|
+
columnToInsert: PropType<ColumnToInsert>;
|
|
51
|
+
isComponentMode: BooleanConstructor;
|
|
52
|
+
fullwidthMode: BooleanConstructor;
|
|
53
|
+
addComponentToColumn: PropType<(component: any) => void>;
|
|
54
|
+
removeComponent: PropType<(obj: any, section: string) => void>;
|
|
55
|
+
cloneComponent: PropType<(obj: any, section: string) => void>;
|
|
56
|
+
section: StringConstructor;
|
|
57
|
+
renderApiDomain: StringConstructor;
|
|
58
|
+
insideComponentBox: {
|
|
59
|
+
type: BooleanConstructor;
|
|
60
|
+
default: boolean;
|
|
61
|
+
};
|
|
62
|
+
isProduction: {
|
|
63
|
+
type: BooleanConstructor;
|
|
64
|
+
default: boolean;
|
|
65
|
+
};
|
|
66
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
67
|
+
object: {
|
|
68
|
+
type: PropType<ComponentObject>;
|
|
69
|
+
required: true;
|
|
70
|
+
};
|
|
71
|
+
columnToInsert: PropType<ColumnToInsert>;
|
|
72
|
+
isComponentMode: BooleanConstructor;
|
|
73
|
+
fullwidthMode: BooleanConstructor;
|
|
74
|
+
addComponentToColumn: PropType<(component: any) => void>;
|
|
75
|
+
removeComponent: PropType<(obj: any, section: string) => void>;
|
|
76
|
+
cloneComponent: PropType<(obj: any, section: string) => void>;
|
|
77
|
+
section: StringConstructor;
|
|
78
|
+
renderApiDomain: StringConstructor;
|
|
79
|
+
insideComponentBox: {
|
|
80
|
+
type: BooleanConstructor;
|
|
81
|
+
default: boolean;
|
|
82
|
+
};
|
|
83
|
+
isProduction: {
|
|
84
|
+
type: BooleanConstructor;
|
|
85
|
+
default: boolean;
|
|
86
|
+
};
|
|
87
|
+
}>> & Readonly<{}>, {
|
|
88
|
+
isProduction: boolean;
|
|
89
|
+
isComponentMode: boolean;
|
|
90
|
+
fullwidthMode: boolean;
|
|
91
|
+
insideComponentBox: boolean;
|
|
92
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
93
|
+
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
2
|
+
isProduction?: boolean;
|
|
3
|
+
debugMode?: boolean;
|
|
4
|
+
submitForm?: boolean;
|
|
5
|
+
inputId?: string | null;
|
|
6
|
+
excludeComponentTypes?: string[];
|
|
7
|
+
/** Public Key de Limbo (pk_xxx) - Si se proporciona, se inicializa Limbo automáticamente */
|
|
8
|
+
limboPublicKey?: string;
|
|
9
|
+
/** URL del endpoint proxy para obtener tokens (default: '/api/limbo-token') */
|
|
10
|
+
limboTokenEndpoint?: string;
|
|
11
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
12
|
+
isProduction?: boolean;
|
|
13
|
+
debugMode?: boolean;
|
|
14
|
+
submitForm?: boolean;
|
|
15
|
+
inputId?: string | null;
|
|
16
|
+
excludeComponentTypes?: string[];
|
|
17
|
+
/** Public Key de Limbo (pk_xxx) - Si se proporciona, se inicializa Limbo automáticamente */
|
|
18
|
+
limboPublicKey?: string;
|
|
19
|
+
/** URL del endpoint proxy para obtener tokens (default: '/api/limbo-token') */
|
|
20
|
+
limboTokenEndpoint?: string;
|
|
21
|
+
}>>> & Readonly<{}>, {}, {}, {}, {}, 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,38 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface PageSection {
|
|
4
|
+
section: string;
|
|
5
|
+
config: any;
|
|
6
|
+
rows: Array<{
|
|
7
|
+
config: {
|
|
8
|
+
padding?: string;
|
|
9
|
+
gap?: string;
|
|
10
|
+
width?: string;
|
|
11
|
+
};
|
|
12
|
+
columns: any[];
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
16
|
+
rowIndex: {
|
|
17
|
+
type: NumberConstructor;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
|
|
21
|
+
removeRow: PropType<(index: number, section: string) => void>;
|
|
22
|
+
addRow: PropType<(index: number | null, section: string) => void>;
|
|
23
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
24
|
+
section: StringConstructor;
|
|
25
|
+
moveRow: PropType<(rowIndex: number, section: string, direction: "up" | "down") => void>;
|
|
26
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
27
|
+
rowIndex: {
|
|
28
|
+
type: NumberConstructor;
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
|
|
32
|
+
removeRow: PropType<(index: number, section: string) => void>;
|
|
33
|
+
addRow: PropType<(index: number | null, section: string) => void>;
|
|
34
|
+
globalPageConfiguration: PropType<PageSection[]>;
|
|
35
|
+
section: StringConstructor;
|
|
36
|
+
moveRow: PropType<(rowIndex: number, section: string, direction: "up" | "down") => void>;
|
|
37
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
38
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
|
|
3
|
+
interface FeedCriteria {
|
|
4
|
+
name: string;
|
|
5
|
+
url: string;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
8
|
+
onSubmit: {
|
|
9
|
+
type: PropType<(data: any[]) => void>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
updateFeedCriteria: {
|
|
13
|
+
type: PropType<(criteria: FeedCriteria) => void>;
|
|
14
|
+
required: true;
|
|
15
|
+
};
|
|
16
|
+
isProduction: {
|
|
17
|
+
type: BooleanConstructor;
|
|
18
|
+
default: boolean;
|
|
19
|
+
};
|
|
20
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
21
|
+
onSubmit: {
|
|
22
|
+
type: PropType<(data: any[]) => void>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
updateFeedCriteria: {
|
|
26
|
+
type: PropType<(criteria: FeedCriteria) => void>;
|
|
27
|
+
required: true;
|
|
28
|
+
};
|
|
29
|
+
isProduction: {
|
|
30
|
+
type: BooleanConstructor;
|
|
31
|
+
default: boolean;
|
|
32
|
+
};
|
|
33
|
+
}>> & Readonly<{}>, {
|
|
34
|
+
isProduction: boolean;
|
|
35
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
36
|
+
export default _default;
|