@iamproperty/components 1.0.12 → 2.1.0
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 +120 -12
- package/assets/.DS_Store +0 -0
- package/assets/css/core.min.css +1 -0
- package/assets/css/core.min.css.map +1 -0
- package/assets/css/style.min.css +1 -0
- package/assets/css/style.min.css.map +1 -0
- package/assets/favicons/android-chrome-192x192.png +0 -0
- package/assets/favicons/android-chrome-512x512.png +0 -0
- package/assets/favicons/apple-touch-icon.png +0 -0
- package/assets/favicons/favicon-16x16.png +0 -0
- package/assets/favicons/favicon-32x32.png +0 -0
- package/assets/favicons/favicon.ico +0 -0
- package/assets/fonts/qanelas-medium-webfont.woff +0 -0
- package/assets/fonts/qanelas-medium-webfont.woff2 +0 -0
- package/assets/fonts/qanelassoft-extrabold-webfont.woff +0 -0
- package/assets/fonts/qanelassoft-extrabold-webfont.woff2 +0 -0
- package/assets/img/.DS_Store +0 -0
- package/{src/assets → assets}/img/logo.png +0 -0
- package/assets/js/main.js +62 -0
- package/assets/js/modules/accordion.js +36 -0
- package/assets/js/modules/carousel.js +102 -0
- package/assets/js/modules/drawer.js +16 -0
- package/assets/js/modules/form.js +49 -0
- package/assets/js/modules/helpers.js +93 -0
- package/assets/js/modules/modal.js +72 -0
- package/assets/js/modules/nav.js +27 -0
- package/assets/js/modules/table.js +573 -0
- package/assets/js/modules/testimonial.js +83 -0
- package/assets/js/scripts.bundle.js +1313 -0
- package/assets/js/scripts.bundle.js.map +1 -0
- package/assets/js/scripts.bundle.min.js +7 -0
- package/assets/js/scripts.bundle.min.js.map +1 -0
- package/assets/sass/.DS_Store +0 -0
- package/assets/sass/_components.scss +35 -0
- package/assets/sass/_corefiles.scss +58 -0
- package/assets/sass/_func.scss +9 -0
- package/assets/sass/_functions/functions.scss +95 -0
- package/assets/sass/_functions/mixins.scss +109 -0
- package/assets/sass/_functions/utilities.scss +198 -0
- package/assets/sass/_functions/variables.scss +365 -0
- package/assets/sass/components/accordion.scss +194 -0
- package/assets/sass/components/card.scss +168 -0
- package/assets/sass/components/cardDeck.scss +107 -0
- package/assets/sass/components/carousel.scss +265 -0
- package/assets/sass/components/charts.scss +562 -0
- package/assets/sass/components/drawer.scss +45 -0
- package/assets/sass/components/header.scss +57 -0
- package/assets/sass/components/modal.scss +133 -0
- package/assets/sass/components/nav.scss +619 -0
- package/assets/sass/components/property-searchbar.scss +138 -0
- package/assets/sass/components/snapshot.scss +69 -0
- package/assets/sass/components/tabs.scss +46 -0
- package/assets/sass/components/testimonial.scss +131 -0
- package/assets/sass/components/timeline.scss +93 -0
- package/assets/sass/core.scss +4 -0
- package/assets/sass/elements/buttons.scss +263 -0
- package/assets/sass/elements/container.scss +134 -0
- package/assets/sass/elements/forms.scss +128 -0
- package/assets/sass/elements/links.scss +95 -0
- package/assets/sass/elements/lists.scss +21 -0
- package/assets/sass/elements/media.scss +3 -0
- package/assets/sass/elements/tables.scss +247 -0
- package/assets/sass/elements/tooltips.scss +71 -0
- package/assets/sass/elements/type.scss +99 -0
- package/assets/sass/foundations/brand.scss +64 -0
- package/assets/sass/foundations/circles.scss +66 -0
- package/assets/sass/foundations/fonts.scss +17 -0
- package/assets/sass/foundations/icons.scss +46 -0
- package/assets/sass/foundations/reboot.scss +110 -0
- package/assets/sass/foundations/root.scss +42 -0
- package/assets/sass/main.scss +5 -0
- package/assets/svg/.DS_Store +0 -0
- package/assets/svg/flat/.DS_Store +0 -0
- package/assets/svg/flat/agreed.svg +1 -0
- package/assets/svg/flat/alert.svg +1 -0
- package/assets/svg/flat/asset-37.svg +1 -0
- package/assets/svg/flat/asset-73.svg +1 -0
- package/assets/svg/flat/asset-82.svg +1 -0
- package/assets/svg/flat/award.svg +1 -0
- package/assets/svg/flat/bath.svg +1 -0
- package/assets/svg/flat/bed.svg +1 -0
- package/assets/svg/flat/calculate.svg +1 -0
- package/assets/svg/flat/calendar.svg +1 -0
- package/assets/svg/flat/celebrate.svg +1 -0
- package/assets/svg/flat/chat-house.svg +1 -0
- package/assets/svg/flat/chat.svg +1 -0
- package/assets/svg/flat/circle.svg +1 -0
- package/assets/svg/flat/clean.svg +1 -0
- package/assets/svg/flat/clock.svg +1 -0
- package/assets/svg/flat/computer.svg +1 -0
- package/assets/svg/flat/down.svg +1 -0
- package/assets/svg/flat/edit.svg +1 -0
- package/assets/svg/flat/email.svg +1 -0
- package/assets/svg/flat/event.svg +1 -0
- package/assets/svg/flat/family.svg +1 -0
- package/assets/svg/flat/file.svg +1 -0
- package/assets/svg/flat/find.svg +1 -0
- package/assets/svg/flat/fireworks.svg +1 -0
- package/assets/svg/flat/fist-left.svg +1 -0
- package/assets/svg/flat/fist.svg +1 -0
- package/assets/svg/flat/folder.svg +1 -0
- package/assets/svg/flat/footprints.svg +1 -0
- package/assets/svg/flat/hand.svg +1 -0
- package/assets/svg/flat/hands.svg +1 -0
- package/assets/svg/flat/house-2.svg +1 -0
- package/assets/svg/flat/house.svg +1 -0
- package/assets/svg/flat/idea.svg +1 -0
- package/assets/svg/flat/judge-house.svg +1 -0
- package/assets/svg/flat/judge.svg +1 -0
- package/assets/svg/flat/keys-house.svg +1 -0
- package/assets/svg/flat/lock.svg +1 -0
- package/assets/svg/flat/mobile.svg +1 -0
- package/assets/svg/flat/money.svg +1 -0
- package/assets/svg/flat/monument.svg +1 -0
- package/assets/svg/flat/online-judgement.svg +1 -0
- package/assets/svg/flat/paint.svg +1 -0
- package/assets/svg/flat/person-2.svg +1 -0
- package/assets/svg/flat/person.svg +1 -0
- package/assets/svg/flat/phone.svg +1 -0
- package/assets/svg/flat/pin.svg +1 -0
- package/assets/svg/flat/pound.svg +1 -0
- package/assets/svg/flat/present.svg +1 -0
- package/assets/svg/flat/qualification.svg +1 -0
- package/assets/svg/flat/rocket.svg +1 -0
- package/assets/svg/flat/sale.svg +1 -0
- package/assets/svg/flat/save.svg +1 -0
- package/assets/svg/flat/scale.svg +1 -0
- package/assets/svg/flat/send.svg +1 -0
- package/assets/svg/flat/share.svg +1 -0
- package/assets/svg/flat/sofa.svg +1 -0
- package/assets/svg/flat/sold.svg +1 -0
- package/assets/svg/flat/star.svg +1 -0
- package/assets/svg/flat/stopwatch.svg +1 -0
- package/assets/svg/flat/task.svg +1 -0
- package/assets/svg/flat/telescope.svg +1 -0
- package/assets/svg/flat/thumb.svg +1 -0
- package/assets/svg/flat/time.svg +1 -0
- package/assets/svg/flat/up.svg +1 -0
- package/assets/svg/flat/valuation.svg +1 -0
- package/assets/svg/flat/value-house.svg +1 -0
- package/assets/svg/flat/warning.svg +1 -0
- package/assets/svg/flat/water.svg +1 -0
- package/assets/svg/icons.svg +51 -0
- package/assets/svg/illustrations/commuter1.svg +1 -0
- package/assets/svg/illustrations/commuter2.svg +1 -0
- package/assets/svg/illustrations/commuter3.svg +1 -0
- package/assets/svg/logo.svg +43 -0
- package/dist/components.common.js +8253 -328
- package/dist/components.common.js.map +1 -1
- package/dist/components.css +2 -1
- package/dist/components.css.map +1 -0
- package/dist/components.umd.js +8253 -328
- package/dist/components.umd.js.map +1 -1
- package/dist/components.umd.min.js +1 -1
- package/dist/components.umd.min.js.map +1 -1
- package/package.json +91 -57
- package/src/.DS_Store +0 -0
- package/src/components/Accordion/Accordion.vue +24 -0
- package/src/components/Accordion/AccordionItem.vue +43 -0
- package/src/components/Accordion/README.md +34 -0
- package/src/components/Banner/Banner.vue +38 -0
- package/src/components/Banner/README.md +24 -0
- package/src/components/Card/Card.vue +115 -0
- package/src/components/Card/README.md +24 -0
- package/src/components/CardDeck/CardDeck.vue +78 -0
- package/src/components/CardDeck/README.md +25 -0
- package/src/components/Carousel/Carousel.vue +86 -0
- package/src/components/Carousel/README.md +20 -0
- package/src/components/Chart/Chart.vue +246 -0
- package/src/components/Chart/README.md +18 -0
- package/src/components/Drawer/Drawer.vue +54 -0
- package/src/components/Drawer/README.md +23 -0
- package/src/components/Header/Header.vue +39 -0
- package/src/components/Header/README.md +28 -0
- package/src/components/Modal/Modal.vue +44 -0
- package/src/components/Modal/README.md +20 -0
- package/src/components/Nav/Nav.vue +129 -0
- package/src/components/Nav/README.md +23 -0
- package/src/components/PropertySearchbar/PropertySearchbar.vue +206 -0
- package/src/components/PropertySearchbar/README.md +26 -0
- package/src/components/Snapshot/README.md +21 -0
- package/src/components/Snapshot/Snapshot.vue +33 -0
- package/src/components/Tabs/README.md +27 -0
- package/src/components/Tabs/Tab.vue +17 -0
- package/src/components/Tabs/Tabs.vue +55 -0
- package/src/components/Testimonial/README.md +26 -0
- package/src/components/Testimonial/Testimonial.vue +61 -0
- package/src/components/Timeline/README.md +18 -0
- package/src/components/Timeline/Timeline.vue +25 -0
- package/src/elements/Input/Input.vue +236 -0
- package/src/elements/Input/README.md +18 -0
- package/src/elements/Table/README.md +55 -0
- package/src/elements/Table/Table.vue +112 -0
- package/src/foundations/Icon/Icon.vue +21 -0
- package/src/foundations/Icon/README.md +11 -0
- package/src/foundations/Logo/Logo.vue +39 -0
- package/src/foundations/Logo/README.md +20 -0
- package/src/helpers/strings.js +12 -0
- package/src/index.js +21 -4
- package/src/assets/css/default.css +0 -99
- package/src/assets/logo.png +0 -0
- package/src/assets/scss/_variables.scss +0 -13
- package/src/components/KeyFacts/KeyFact.vue +0 -45
- package/src/components/KeyFacts/KeyFactGroup.vue +0 -44
- package/src/components/KeyFacts/README.md +0 -23
- package/src/components/PropertyTaskIntro/PropertyTaskIntro.vue +0 -74
- package/src/components/PropertyTaskIntro/README.md +0 -27
- package/src/components/TaskTitle/README.md +0 -24
- package/src/components/TaskTitle/TaskTitle.vue +0 -68
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container" ref="wrapper">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
<div class="property-searchbar">
|
|
5
|
+
<form class="row" :action="formaction" :method="formmethod">
|
|
6
|
+
<fieldset class="col-12 col-md-3">
|
|
7
|
+
<Input inputClass="input--locations" v-model="locationSet" label="Location" id="location" :options="locationsList()" required placeholder="i.e. Newcastle or NE1" @keyupEvent="locationKeyup(...arguments)" ref="search"></Input>
|
|
8
|
+
<Input class="select--miles" label="Miles" id="miles" type="select" :options="distances"></Input>
|
|
9
|
+
</fieldset>
|
|
10
|
+
<fieldset class="col-12 col-md">
|
|
11
|
+
<span class="form-label d-none d-md-block">Price range</span>
|
|
12
|
+
<div class="row" data-input-range>
|
|
13
|
+
<Input class="col-6" label="Minimum price" id="price-min" data-min="true" type="select" :options="pricemin"></Input>
|
|
14
|
+
<Input class="col-6" label="Maximum price" id="price-max" data-max="true" type="select" :options="pricemax"></Input>
|
|
15
|
+
</div>
|
|
16
|
+
</fieldset>
|
|
17
|
+
<fieldset class="col-12 col-md">
|
|
18
|
+
<span class="form-label d-none d-md-block">Number of beds</span>
|
|
19
|
+
<div class="row" data-input-range>
|
|
20
|
+
<Input class="col-6" label="Minimum beds" id="beds-min" data-min="true" type="select" :options="bedsmin"></Input>
|
|
21
|
+
<Input class="col-6" label="Maximum beds" id="beds-max" data-max="true" type="select" :options="bedsmax"></Input>
|
|
22
|
+
</div>
|
|
23
|
+
</fieldset>
|
|
24
|
+
<fieldset class="col-12 col-md-2">
|
|
25
|
+
<Input label="Property type" id="property-type" type="select" :options="propertytypes"></Input>
|
|
26
|
+
</fieldset>
|
|
27
|
+
<div class="col-12 col-md mw-md-fit-content d-flex property-searchbar__btn">
|
|
28
|
+
<button class="btn w-100 me-0" type="submit" value="submit">Search</button>
|
|
29
|
+
</div>
|
|
30
|
+
</form>
|
|
31
|
+
</div>
|
|
32
|
+
<slot name="after"></slot>
|
|
33
|
+
</div>
|
|
34
|
+
</template>
|
|
35
|
+
|
|
36
|
+
<style lang="scss">
|
|
37
|
+
@import "../../../assets/sass/_func.scss";
|
|
38
|
+
@import "../../../assets/sass/components/property-searchbar.scss";
|
|
39
|
+
|
|
40
|
+
</style>
|
|
41
|
+
|
|
42
|
+
<script>
|
|
43
|
+
import Input from '../../elements/Input/Input.vue'
|
|
44
|
+
|
|
45
|
+
export default {
|
|
46
|
+
components: {
|
|
47
|
+
Input
|
|
48
|
+
},
|
|
49
|
+
name: 'PropertySearchbar',
|
|
50
|
+
props: {
|
|
51
|
+
formaction: {
|
|
52
|
+
type: String,
|
|
53
|
+
required: false
|
|
54
|
+
},
|
|
55
|
+
formmethod: {
|
|
56
|
+
type: String,
|
|
57
|
+
required: false
|
|
58
|
+
},
|
|
59
|
+
location: {
|
|
60
|
+
type: String,
|
|
61
|
+
required: false
|
|
62
|
+
},
|
|
63
|
+
locations: {
|
|
64
|
+
type: Array,
|
|
65
|
+
required: false
|
|
66
|
+
},
|
|
67
|
+
distances: {
|
|
68
|
+
type: Array,
|
|
69
|
+
required: false,
|
|
70
|
+
default() {
|
|
71
|
+
return [
|
|
72
|
+
{'value':'0.25','display':'+¼ mi'},
|
|
73
|
+
{'value':'0.5','display':'+½ mi'},
|
|
74
|
+
{'value':'1','display':'+1 mi'},
|
|
75
|
+
{'value':'2','display':'+2 mi'},
|
|
76
|
+
{'value':'3','display':'+3 mi'},
|
|
77
|
+
{'value':'4','display':'+4 mi'},
|
|
78
|
+
{'value':'5','display':'+5 mi'}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
pricemin: {
|
|
83
|
+
type: Array,
|
|
84
|
+
required: false,
|
|
85
|
+
default() {
|
|
86
|
+
return [
|
|
87
|
+
{'value':'0','display':'No min'},
|
|
88
|
+
{'value':'50000','display':'£50k min'},
|
|
89
|
+
{'value':'75000','display':'£75k min'},
|
|
90
|
+
{'value':'100000','display':'£100k min'},
|
|
91
|
+
{'value':'150000','display':'£150k min'},
|
|
92
|
+
{'value':'200000','display':'£200k min'},
|
|
93
|
+
{'value':'250000','display':'£250k min'}
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
pricemax: {
|
|
98
|
+
type: Array,
|
|
99
|
+
required: false,
|
|
100
|
+
default() {
|
|
101
|
+
return [
|
|
102
|
+
{'value':'any','display':'No max'},
|
|
103
|
+
{'value':'50000','display':'£50k max'},
|
|
104
|
+
{'value':'75000','display':'£75k max'},
|
|
105
|
+
{'value':'100000','display':'£100k max'},
|
|
106
|
+
{'value':'150000','display':'£150k max'},
|
|
107
|
+
{'value':'200000','display':'£200k max'},
|
|
108
|
+
{'value':'250000','display':'£250k max'}
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
bedsmin: {
|
|
113
|
+
type: Array,
|
|
114
|
+
required: false,
|
|
115
|
+
default() {
|
|
116
|
+
return [
|
|
117
|
+
{'value':'any','display':'No min'},
|
|
118
|
+
{'value':'0','display':'Studio min'},
|
|
119
|
+
{'value':'1','display':'1 bed min'},
|
|
120
|
+
{'value':'2','display':'2 beds min'},
|
|
121
|
+
{'value':'3','display':'3 beds min'},
|
|
122
|
+
{'value':'4','display':'4 beds min'},
|
|
123
|
+
{'value':'5','display':'5 beds min'},
|
|
124
|
+
{'value':'6','display':'6 beds min'}
|
|
125
|
+
];
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
bedsmax: {
|
|
129
|
+
type: Array,
|
|
130
|
+
required: false,
|
|
131
|
+
default() {
|
|
132
|
+
return [
|
|
133
|
+
{'value':'any','display':'No max'},
|
|
134
|
+
{'value':'0','display':'Studio max'},
|
|
135
|
+
{'value':'1','display':'1 bed max'},
|
|
136
|
+
{'value':'2','display':'2 beds max'},
|
|
137
|
+
{'value':'3','display':'3 beds max'},
|
|
138
|
+
{'value':'4','display':'4 beds max'},
|
|
139
|
+
{'value':'5','display':'5 beds max'},
|
|
140
|
+
{'value':'6','display':'6 beds max'}
|
|
141
|
+
];
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
propertytypes: {
|
|
145
|
+
type: Array,
|
|
146
|
+
required: false,
|
|
147
|
+
default() {
|
|
148
|
+
return [
|
|
149
|
+
{'value':'all','display':'Show all'},
|
|
150
|
+
{'value':'Bungalow','display':'Bungalow'},
|
|
151
|
+
{'value':'Character Property','display':'Character Property'},
|
|
152
|
+
{'value':'Commercial Property','display':'Commercial Property'},
|
|
153
|
+
{'value':'Flat / Apartment','display':'Flat / Apartment'},
|
|
154
|
+
{'value':'Garage / Parking','display':'Garage / Parking'},
|
|
155
|
+
{'value':'Guest House / Hotel','display':'Guest House / Hotel'},
|
|
156
|
+
{'value':'House','display':'House'},
|
|
157
|
+
{'value':'House / Flat Share','display':'House / Flat Share'},
|
|
158
|
+
{'value':'Land','display':'Land'},
|
|
159
|
+
{'value':'Mobile / Park Home','display':'Mobile / Park Home'},
|
|
160
|
+
{'value':'Private Halls','display':'Private Halls'},
|
|
161
|
+
{'value':'Retirement Property','display':'Retirement Property'}
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
data () {
|
|
167
|
+
return {
|
|
168
|
+
locationSave: ''
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
methods: {
|
|
172
|
+
locationKeyup: function(event){
|
|
173
|
+
|
|
174
|
+
this.$emit('locationKeyup',event);
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
computed: {
|
|
178
|
+
locationSet: {
|
|
179
|
+
get() {
|
|
180
|
+
|
|
181
|
+
if(this.locationSave)
|
|
182
|
+
return this.locationSave;
|
|
183
|
+
|
|
184
|
+
return this.location;
|
|
185
|
+
},
|
|
186
|
+
set(val) {
|
|
187
|
+
|
|
188
|
+
this.locationSave = val;
|
|
189
|
+
this.$emit('input', val);
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
locationsList() {
|
|
193
|
+
return () => {
|
|
194
|
+
|
|
195
|
+
if(this.locations){
|
|
196
|
+
return this.locations
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return [
|
|
200
|
+
{'value': 'Newcastle'}
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<PropertySearchbar></PropertySearchbar>
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Properties
|
|
8
|
+
|
|
9
|
+
| Option | Type | Default Value | Description |
|
|
10
|
+
| ------ | ---- | ------------- | ----------- |
|
|
11
|
+
| formAction | String | - | Set where the property search submit the form to |
|
|
12
|
+
| formAction | String | - | Sets how the form is submitted, i.e. post or get |
|
|
13
|
+
| distances | Array | See documentation example | Override the default (Not recommened) |
|
|
14
|
+
| priceMin | Array | See documentation example | Override the default (Not recommened) |
|
|
15
|
+
| priceMax | Array | See documentation example | Override the default (Not recommened) |
|
|
16
|
+
| bedsMin | Array | See documentation example | Override the default (Not recommened) |
|
|
17
|
+
| bedsMax | Array | See documentation example | Override the default (Not recommened) |
|
|
18
|
+
| propertyTypes | Array | See documentation example | Override the default (Not recommened) |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Slots
|
|
22
|
+
|
|
23
|
+
| Option | Default Value | Description |
|
|
24
|
+
| ------ | ------------- | ----------- |
|
|
25
|
+
| default | - | Will display before the property searchbar |
|
|
26
|
+
| after | - | Will display after the property searchbar |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Snapshot :items="items"></Snapshot>
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
### Properties
|
|
8
|
+
|
|
9
|
+
| Option | Type | Default Value | Description |
|
|
10
|
+
| ------ | ---- | ------------- | ----------- |
|
|
11
|
+
| items | Array | - | Table row data passed |
|
|
12
|
+
| - item.title | String | - | Title of the snapshot figure |
|
|
13
|
+
| - item.bg | String | - | Theme colour to highlight the importance of the figure i.e. danger to indicate a high priority. |
|
|
14
|
+
| - item.number | String | - | The actual figure, recommended to be a single number but could be more i.e. 10 days.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Slots
|
|
18
|
+
|
|
19
|
+
| Option | Default Value | Description |
|
|
20
|
+
| ------ | ------------- | ----------- |
|
|
21
|
+
| default | - | Will display before the snapshot items |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container snapshot" ref="wrapper">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col" v-for="(value,index) in items" :key="index">
|
|
6
|
+
|
|
7
|
+
<a :href="value.link" v-if="value.link">View {{value.title}}</a>
|
|
8
|
+
<div :class="`snapshot__item ${value.bg ? 'bg-'+value.bg : ''}`">
|
|
9
|
+
<span class="h6 snapshot__title">{{value.title}}</span>
|
|
10
|
+
<span class="stat">{{value.number}}</span>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<style lang="scss">
|
|
18
|
+
@import "../../../assets/sass/_func.scss";
|
|
19
|
+
@import "../../../assets/sass/components/snapshot.scss";
|
|
20
|
+
</style>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
name: 'Snapshot',
|
|
26
|
+
props: {
|
|
27
|
+
items: {
|
|
28
|
+
type: Array,
|
|
29
|
+
required: true
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Tabs class="visualtest">
|
|
5
|
+
<Tab title="Tab content 1">
|
|
6
|
+
<h2>Tab content 1</h2>
|
|
7
|
+
</Tab>
|
|
8
|
+
<Tab title="Tab content 2">
|
|
9
|
+
<h2>Tab content 2</h2>
|
|
10
|
+
</Tab>
|
|
11
|
+
<Tab title="Tab content 3">
|
|
12
|
+
<h2>Tab content 3</h2>
|
|
13
|
+
</Tab>
|
|
14
|
+
</Tabs>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Tab Properties
|
|
18
|
+
|
|
19
|
+
| Option | Type | Default Value | Description |
|
|
20
|
+
| ------ | ---- | ------------- | ----------- |
|
|
21
|
+
| title | String | - | Used for the heading of the component |
|
|
22
|
+
|
|
23
|
+
### Slots
|
|
24
|
+
|
|
25
|
+
| Option | Default Value | Description |
|
|
26
|
+
| ------ | ------------- | ----------- |
|
|
27
|
+
| default | - | Can be populated with Tab components |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container tabs__container" ref="wrapper">
|
|
3
|
+
|
|
4
|
+
<input type="radio" class="d-none" v-for="(value,index) in tabLinks()" :key="index" :name="value.name" :id="value.id" :checked="index == 0? 'checked':''" />
|
|
5
|
+
|
|
6
|
+
<div class="tabs__links">
|
|
7
|
+
<label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link">
|
|
8
|
+
{{value.tabTitle}}
|
|
9
|
+
</label>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="tabs">
|
|
12
|
+
<slot></slot>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<style lang="scss">
|
|
18
|
+
@import "../../../assets/sass/_func.scss";
|
|
19
|
+
@import "../../../assets/sass/components/tabs.scss";
|
|
20
|
+
</style>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
export default {
|
|
24
|
+
name: 'Tabs',
|
|
25
|
+
data () {
|
|
26
|
+
return {
|
|
27
|
+
tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
computed: {
|
|
31
|
+
tabLinks (){
|
|
32
|
+
return () => {
|
|
33
|
+
|
|
34
|
+
const tabLinks = [];
|
|
35
|
+
let i = 1;
|
|
36
|
+
|
|
37
|
+
for (const [key, value] of Object.entries(this.$slots.default)) {
|
|
38
|
+
|
|
39
|
+
let tabTitle = value.componentOptions.propsData.title;
|
|
40
|
+
|
|
41
|
+
let tab = {
|
|
42
|
+
name: this.tabsID,
|
|
43
|
+
id: this.tabsID+"_tab"+i++,
|
|
44
|
+
tabTitle: tabTitle
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
tabLinks.push(tab);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return tabLinks;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Testimonial :items="items">
|
|
5
|
+
<a href="/buying-stories" class="btn">Buying stories</a>
|
|
6
|
+
<a href="/selling-stories" class="btn">Selling stories</a>
|
|
7
|
+
</Testimonial>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
### Properties
|
|
11
|
+
|
|
12
|
+
| Option | Type | Default Value | Description |
|
|
13
|
+
| ------ | ---- | ------------- | ----------- |
|
|
14
|
+
| title | String | What our customers think… | Used for the heading of the component |
|
|
15
|
+
| items | Array | - | Testimonial data passed |
|
|
16
|
+
| - item.class | String | - | Optional, this should be used to define the largest testimonial by setting it to 'largest' |
|
|
17
|
+
| - item.cite | String | - | The person who made the quote |
|
|
18
|
+
| - item.quote | HTML | - | The quote content |
|
|
19
|
+
| - item.image | Image | - | The image that sits to the left of the quote. |
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Slots
|
|
23
|
+
|
|
24
|
+
| Option | Default Value | Description |
|
|
25
|
+
| ------ | ------------- | ----------- |
|
|
26
|
+
| default | - | Will display underneath the quotes |
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container testimonial mb-5" data-show="1" ref="wrapper">
|
|
3
|
+
<div :class="'bg-'+background">
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col-md-5 position-relative">
|
|
6
|
+
<div class="testimonial__images">
|
|
7
|
+
<img v-for="(value,index) in items" :key="index" :src="value.image ? value.image : 'data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='" alt="" :class="'h-100 w-100 object-cover' + (value.image ? '' : ' opacity-0')" />
|
|
8
|
+
</div>
|
|
9
|
+
<div class="testimonial__controls">
|
|
10
|
+
<button data-go="0" disabled class="btn-prev">Previous</button>
|
|
11
|
+
<button data-go="2" class="btn-next">Next</button>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="col-md-7">
|
|
15
|
+
<h2>What our customers think…</h2>
|
|
16
|
+
<div class="testimonial__content">
|
|
17
|
+
|
|
18
|
+
<blockquote v-for="(value,index) in items" :key="index" :class="value.class">
|
|
19
|
+
<div v-html="value.quote"></div>
|
|
20
|
+
<cite v-html="value.cite"></cite>
|
|
21
|
+
</blockquote>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="testimonial__after">
|
|
24
|
+
<slot></slot>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<span class="circle circle--dots d-none d-md-block"></span>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<style lang="scss">
|
|
34
|
+
@import "../../../assets/sass/_func.scss";
|
|
35
|
+
@import "../../../assets/sass/components/testimonial.scss";
|
|
36
|
+
</style>
|
|
37
|
+
|
|
38
|
+
<script>
|
|
39
|
+
import testimonial from '../../../assets/js/modules/testimonial.js'
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
export default {
|
|
43
|
+
name: 'Testimonial',
|
|
44
|
+
props: {
|
|
45
|
+
items: {
|
|
46
|
+
type: Array,
|
|
47
|
+
required: true
|
|
48
|
+
},
|
|
49
|
+
background: {
|
|
50
|
+
type: String,
|
|
51
|
+
default: 'light',
|
|
52
|
+
required: false
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
mounted(){
|
|
56
|
+
|
|
57
|
+
testimonial(this.$refs.wrapper);
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<p class="note">The Timeline component represents an individual item within the timeline and not the full timeline itself. These Vue components need to be inside of a div with the class of 'timeline__container'.</p>
|
|
2
|
+
|
|
3
|
+
### Usage
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
<div class="timeline__container container">
|
|
7
|
+
<Timeline :image="require('../../assets/shutterstock_1229155495.webp')">
|
|
8
|
+
<h2>01 Search</h2>
|
|
9
|
+
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
|
|
10
|
+
</Timeline>
|
|
11
|
+
</div>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Properties
|
|
15
|
+
|
|
16
|
+
| Option | Type | Default Value | Description |
|
|
17
|
+
| ------ | ---- | ------------- | ----------- |
|
|
18
|
+
| image | String | - | Optional image url to display in the background |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="timeline">
|
|
3
|
+
<div class="timeline__content">
|
|
4
|
+
<slot></slot>
|
|
5
|
+
</div>
|
|
6
|
+
<img v-if="image" :src="image" alt="" />
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<style lang="scss">
|
|
11
|
+
@import "../../../assets/sass/_func.scss";
|
|
12
|
+
@import "../../../assets/sass/components/timeline.scss";
|
|
13
|
+
</style>
|
|
14
|
+
|
|
15
|
+
<script>
|
|
16
|
+
export default {
|
|
17
|
+
name: 'Timeline',
|
|
18
|
+
props: {
|
|
19
|
+
image: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
</script>
|