@dcodegroup-au/page-builder 0.5.8 → 0.5.9
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/page-builder.css +17 -0
- package/dist/page-builder.es.js +3345 -3241
- package/dist/page-builder.umd.js +3345 -3241
- package/example/src/App.vue +3 -2
- package/example/src/pages/AssessmentSupportService.js +120 -0
- package/package.json +1 -1
- package/src/components/PageBuilder.vue +1 -0
- package/src/components/PageRender.vue +2 -0
- package/src/components/builders/Links.vue +1 -1
- package/src/components/helpers/pageBuilderFactory.js +1 -1
- package/src/components/presenters/modules/AccordionPricing.vue +72 -0
- package/src/components/presenters/modules/Paragraph.vue +1 -1
package/example/src/App.vue
CHANGED
|
@@ -12,6 +12,7 @@ import {OurGroups} from "./pages/OurGroups.js";
|
|
|
12
12
|
import {Vectea2024} from "./pages/Vectea2024.js";
|
|
13
13
|
import {AdvocaryAndResearch} from "./pages/AdvocaryAndResearch.js";
|
|
14
14
|
import {SAEW} from "./pages/SAEW.js";
|
|
15
|
+
import {AssessmentSupportService} from "./pages/AssessmentSupportService.js";
|
|
15
16
|
|
|
16
17
|
const slide = {
|
|
17
18
|
title: "About ELAA",
|
|
@@ -110,7 +111,7 @@ const breadcrumbs = [
|
|
|
110
111
|
{{ JSON.stringify(SAEW) }}
|
|
111
112
|
<div style="margin: 40px 0">
|
|
112
113
|
<h1 style="margin-bottom: 20px; font-size: 50px;">Page Render</h1>
|
|
113
|
-
<PageRender :page="
|
|
114
|
+
<PageRender :page="AssessmentSupportService"/>
|
|
114
115
|
</div>
|
|
115
116
|
<div style="margin: 40px 0">
|
|
116
117
|
<h1 style="margin-bottom: 20px; font-size: 50px;">Slider Edit</h1>
|
|
@@ -126,7 +127,7 @@ const breadcrumbs = [
|
|
|
126
127
|
</div>
|
|
127
128
|
<div style="margin: 40px 0">
|
|
128
129
|
<h1 style="margin-bottom: 20px; font-size: 50px;">Page Builder</h1>
|
|
129
|
-
<PageBuilder v-model="
|
|
130
|
+
<PageBuilder v-model="AssessmentSupportService" :breadcrumbs="breadcrumbs" :forms="forms" :sites="sites"/>
|
|
130
131
|
</div>
|
|
131
132
|
</div>
|
|
132
133
|
</template>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export const AssessmentSupportService =
|
|
2
|
+
{
|
|
3
|
+
title: "Capability Assessment Support Service",
|
|
4
|
+
sections: [
|
|
5
|
+
{
|
|
6
|
+
title: "Standard header",
|
|
7
|
+
type: "standard_header",
|
|
8
|
+
components: [
|
|
9
|
+
{
|
|
10
|
+
name: "Standard header",
|
|
11
|
+
type: "header",
|
|
12
|
+
title: "Capability Assessment Support Service",
|
|
13
|
+
supporting_text_max_length: 500,
|
|
14
|
+
supporting_text: "ELAA is offering a 2-hour panellist consultancy Capability Assessment support program.",
|
|
15
|
+
},
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
title: "Bullet Points Section",
|
|
20
|
+
type: "bullet_points",
|
|
21
|
+
components: [
|
|
22
|
+
{
|
|
23
|
+
name: "Section header",
|
|
24
|
+
type: "header",
|
|
25
|
+
title: "What the support program will involve",
|
|
26
|
+
supporting_text: "ELAA is offering a 2-hour panellist consultancy Capability Assessment support program.",
|
|
27
|
+
featured_image: 'https://beta.elaa.org.au/img/what-we-do/capability-assessment-support-service/capability-assessment-support-service-01.jpg',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "Bullet Points",
|
|
31
|
+
type: "bullet_points",
|
|
32
|
+
supportive_text: "This section can contain up to 10 items.",
|
|
33
|
+
max_items: 10,
|
|
34
|
+
has_type_switcher: false,
|
|
35
|
+
max_title: 500,
|
|
36
|
+
data: [
|
|
37
|
+
{
|
|
38
|
+
title: "An ELAA team member with expertise in early childhood education attending your Capability Assessment panel.",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
title: "Participate in discussions with your committee/management, determining an outcome for your teacher.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: "Support will be on a per teacher basis.",
|
|
45
|
+
},
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
title: "Accordion pricing section",
|
|
52
|
+
type: "pricing",
|
|
53
|
+
components: [
|
|
54
|
+
{
|
|
55
|
+
name: "Content block",
|
|
56
|
+
type: "paragraph",
|
|
57
|
+
title: "Want to Take the Next Step?",
|
|
58
|
+
paragraph: 'If you are interested in the capability assessment support service, please complete the request form and an ELAA staff member will be in contact to discuss your request.',
|
|
59
|
+
button: {
|
|
60
|
+
title: 'Complete request form',
|
|
61
|
+
url: 'google.com',
|
|
62
|
+
type: 'form',
|
|
63
|
+
open_in_new_tab: true,
|
|
64
|
+
show: true,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "Pricing block",
|
|
69
|
+
type: "pricing",
|
|
70
|
+
supportive_text: "This section can contain up to 10 items.",
|
|
71
|
+
title: "Pricing",
|
|
72
|
+
max_items: 10,
|
|
73
|
+
has_type_switcher: false,
|
|
74
|
+
max_title: 500,
|
|
75
|
+
data: [
|
|
76
|
+
{
|
|
77
|
+
title: "Members",
|
|
78
|
+
supporting_text: "From $250 per teacher",
|
|
79
|
+
is_editor: true,
|
|
80
|
+
has_extra: true,
|
|
81
|
+
as_item: true,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: "Non Members",
|
|
85
|
+
supporting_text: "From $390 per teacher",
|
|
86
|
+
is_editor: true,
|
|
87
|
+
has_extra: true,
|
|
88
|
+
as_item: true,
|
|
89
|
+
},
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: "Contact Us",
|
|
96
|
+
type: "contact_us",
|
|
97
|
+
components: [
|
|
98
|
+
{
|
|
99
|
+
name: "Standard header",
|
|
100
|
+
type: "header",
|
|
101
|
+
title: "Contact Us",
|
|
102
|
+
supporting_text: "If you have further questions regarding ELAA’s advisory services, please contact our Member Solutions Team via the options below.",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "Contact Us",
|
|
106
|
+
type: "contact_us",
|
|
107
|
+
data: [
|
|
108
|
+
{
|
|
109
|
+
show: true,
|
|
110
|
+
name: 'Email button',
|
|
111
|
+
label: 'Contact Member Solutions Team',
|
|
112
|
+
address: 'elaa@gmail.com',
|
|
113
|
+
type: 'email',
|
|
114
|
+
},
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
]
|
|
120
|
+
};
|
package/package.json
CHANGED
|
@@ -145,6 +145,7 @@ const componentMaps = ref({
|
|
|
145
145
|
image_block: markRaw(VImageBlock),
|
|
146
146
|
timeline_items: markRaw(VItems),
|
|
147
147
|
bullet_points: markRaw(VLinks),
|
|
148
|
+
pricing: markRaw(VLinks),
|
|
148
149
|
feature_items: markRaw(VLinks),
|
|
149
150
|
faqs: markRaw(VLinks),
|
|
150
151
|
link_cards: markRaw(VItems),
|
|
@@ -27,6 +27,7 @@ import BulletPoints from "@/components/presenters/modules/BulletPoints.vue";
|
|
|
27
27
|
import Callout from "@/components/presenters/modules/Callout.vue";
|
|
28
28
|
import ContactUs from "@/components/presenters/modules/ContactUs.vue";
|
|
29
29
|
import FAQ from "@/components/presenters/modules/FAQ.vue";
|
|
30
|
+
import AccordionPricing from "@/components/presenters/modules/AccordionPricing.vue";
|
|
30
31
|
|
|
31
32
|
const props = defineProps({
|
|
32
33
|
page: {
|
|
@@ -52,6 +53,7 @@ const componentMaps = ref({
|
|
|
52
53
|
callout: markRaw(Callout),
|
|
53
54
|
contact_us: markRaw(ContactUs),
|
|
54
55
|
faqs: markRaw(FAQ),
|
|
56
|
+
pricing: markRaw(AccordionPricing),
|
|
55
57
|
});
|
|
56
58
|
|
|
57
59
|
const currentComponent = (section) => {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
</label>
|
|
71
71
|
</div>
|
|
72
72
|
<div class="flex flex-col gap-1.5" v-if="!item.hasOwnProperty('content_type') || item.content_type === 'content'">
|
|
73
|
-
<Header v-if="['feature_items', 'faqs'].includes(componentData.type)" :data="item"></Header>
|
|
73
|
+
<Header v-if="['feature_items', 'faqs', 'pricing'].includes(componentData.type)" :data="item"></Header>
|
|
74
74
|
<input-wrapper
|
|
75
75
|
v-else
|
|
76
76
|
is-vertical
|
|
@@ -44,7 +44,7 @@ export function createItem(overrides = {}, withSecondary = true, isTimeline = fa
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
export function createLink(overrides = {}, type = null) {
|
|
47
|
-
if (type === 'faqs') {
|
|
47
|
+
if (type === 'faqs' || type === 'pricing') {
|
|
48
48
|
return {
|
|
49
49
|
has_extra: true,
|
|
50
50
|
as_item: true,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="max-w-[1640px] md:px-[120px] mx-auto w-full py-[40px] flex justify-center gap-[10%] ">
|
|
3
|
+
<div class="bg-pale-100 flex w-full rounded-[20px] p-8 gap-6">
|
|
4
|
+
<div class="w-1/2">
|
|
5
|
+
<p class="text-[36px] font-semibold text-gray-900 mb-[48px]" v-text="pricingComponent.title"></p>
|
|
6
|
+
<div class="flex flex-col divide-y divide-gray-200 px-6 bg-white rounded-[16px] overflow-hidden">
|
|
7
|
+
<div v-for="(price, index) in pricingComponent.data"
|
|
8
|
+
class="relative w-full py-6">
|
|
9
|
+
<a class="text-gray-900 cursor-pointer w-full inline-flex justify-between gap-1.5 items-center leading-[28px] font-semibold text-lg">
|
|
10
|
+
<span class="hover:underline text-lg leading-[28px] text-gray-900" @click="toggle(index)">
|
|
11
|
+
{{ price.title }}
|
|
12
|
+
</span>
|
|
13
|
+
<span class="min-w-[24px]">
|
|
14
|
+
<Plus v-if="!show[index]"
|
|
15
|
+
class="w-6 h-6 cursor-pointer text-gray-400 hover:text-gray-700"
|
|
16
|
+
@click="toggle(index)"></Plus>
|
|
17
|
+
<Minus v-else
|
|
18
|
+
class="w-6 h-6 cursor-pointer text-gray-400 hover:text-gray-700"
|
|
19
|
+
@click="toggle(index)"></Minus>
|
|
20
|
+
</span>
|
|
21
|
+
</a>
|
|
22
|
+
<p v-if="show[index]" class="mt-2 text-gray-600 leading-[24px] all-unset"
|
|
23
|
+
v-html="price?.supporting_text"></p>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="w-1/2 bg-white rounded-[16px] overflow-hidden flex flex-col items-center justify-center px-12">
|
|
28
|
+
<div v-if="paragraphComponent">
|
|
29
|
+
<p class="text-[32px] font-semibold text-gray-900" v-text="paragraphComponent.title"></p>
|
|
30
|
+
<p class="text-[18px]text-gray-600 mt-2" v-html="paragraphComponent.paragraph"></p>
|
|
31
|
+
</div>
|
|
32
|
+
<a v-if="paragraphComponent?.hasOwnProperty('button') && paragraphComponent.button.show" :href="paragraphComponent.button.url"
|
|
33
|
+
class="mt-4 flex justify-center items-center w-full gap-2 px-3 py-2.5 rounded-full shadow-xs text-[16px] font-semibold text-white bg-brand-600 hover:bg-brand-700 border border-brand-600 text-center cursor-pointer"
|
|
34
|
+
>
|
|
35
|
+
{{ paragraphComponent.button.title }} <ArrowUpRight class="w-5 h-5"></ArrowUpRight>
|
|
36
|
+
</a>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
41
|
+
<script setup>
|
|
42
|
+
import {ref, computed} from "vue";
|
|
43
|
+
import Plus from "@/assets/img/icons/plus-circle.svg";
|
|
44
|
+
import Minus from "@/assets/img/icons/minus-circle.svg";
|
|
45
|
+
import ArrowUpRight from "@/assets/img/icons/arrow-up-right.svg";
|
|
46
|
+
|
|
47
|
+
const props = defineProps({
|
|
48
|
+
section: {
|
|
49
|
+
required: true,
|
|
50
|
+
type: Object,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const section = ref(props.section);
|
|
55
|
+
const show = ref([]);
|
|
56
|
+
const paragraphComponent = computed(() => {
|
|
57
|
+
return section.value.components.find((component) => component.type === "paragraph");
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const pricingComponent = computed(() => {
|
|
61
|
+
return section.value.components.find((component) => component.type === "pricing");
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
pricingComponent.value.data.forEach((value, index) => {
|
|
65
|
+
show.value[index] = false;
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
const toggle = (index) => {
|
|
69
|
+
show.value[index] = !show.value[index];
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
</script>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
</h3>
|
|
8
8
|
<div class="all-unset">
|
|
9
9
|
<div v-html="component.paragraph"></div>
|
|
10
|
-
<div v-if="component?.hasOwnProperty('button')">
|
|
10
|
+
<div v-if="component?.hasOwnProperty('button') && button.show">
|
|
11
11
|
<a :href="button.url"
|
|
12
12
|
class="inline-flex items-center gap-2 !no-underline px-3 py-2.5 rounded-full shadow-xs text-md font-semibold !text-white bg-brand-600 hover:bg-brand-700 border border-brand-600 text-center cursor-pointer"
|
|
13
13
|
>{{ button.title }} <ArrowUpRight class="w-5 h-5"></ArrowUpRight></a>
|