@iamproperty/components 3.1.0 → 3.2.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 +141 -16
- package/assets/.DS_Store +0 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/email.min.css +1 -1
- package/assets/css/email.min.css.map +1 -1
- package/assets/css/error.min.css +1 -1
- package/assets/css/error.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/favicons/manifest.json +31 -31
- package/assets/js/main.js +57 -57
- package/assets/js/modules/accordion.js +32 -32
- package/assets/js/modules/alert.js +56 -56
- package/assets/js/modules/carousel.js +101 -101
- package/assets/js/modules/chart.js +218 -218
- package/assets/js/modules/drawer.js +15 -15
- package/assets/js/modules/file-upload.js +48 -48
- package/assets/js/modules/form.js +168 -168
- package/assets/js/modules/helpers.js +119 -119
- package/assets/js/modules/modal.js +89 -89
- package/assets/js/modules/nav.js +28 -28
- package/assets/js/modules/orderablelist.js +122 -122
- package/assets/js/modules/table.js +585 -585
- package/assets/js/modules/testimonial.js +82 -82
- package/assets/js/modules/youtubevideo.js +145 -145
- package/assets/js/scripts.bundle.js +220 -214
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/sass/_components.scss +14 -14
- package/assets/sass/_corefiles.scss +40 -40
- package/assets/sass/_fonts.scss +16 -16
- package/assets/sass/_forms.scss +9 -9
- package/assets/sass/_func.scss +12 -12
- package/assets/sass/_functions/functions.scss +141 -141
- package/assets/sass/_functions/mixins.scss +170 -170
- package/assets/sass/_functions/utilities.scss +143 -143
- package/assets/sass/_functions/variables.scss +467 -467
- package/assets/sass/_print.scss +61 -61
- package/assets/sass/_tests/colours.spec.scss +44 -44
- package/assets/sass/_tests/func.spec.scss +232 -232
- package/assets/sass/_tests/mixins.spec.scss +194 -194
- package/assets/sass/_tests/sass.spec.js +9 -9
- package/assets/sass/_tests/typography.spec.scss +35 -35
- package/assets/sass/components/accordion.scss +197 -197
- package/assets/sass/components/alert.scss +98 -98
- package/assets/sass/components/cardDeck.scss +107 -107
- package/assets/sass/components/carousel.scss +234 -234
- package/assets/sass/components/charts.scss +569 -569
- package/assets/sass/components/drawer.scss +46 -46
- package/assets/sass/components/header.scss +63 -63
- package/assets/sass/components/modal.scss +136 -136
- package/assets/sass/components/nav.scss +960 -960
- package/assets/sass/components/property-searchbar.scss +143 -143
- package/assets/sass/components/snapshot.scss +70 -70
- package/assets/sass/components/stepper.scss +164 -164
- package/assets/sass/components/tabs.scss +87 -87
- package/assets/sass/components/testimonial.scss +132 -132
- package/assets/sass/components/timeline.scss +95 -95
- package/assets/sass/core.scss +6 -6
- package/assets/sass/elements/buttons.scss +251 -251
- package/assets/sass/elements/card.scss +288 -288
- package/assets/sass/elements/container.scss +236 -236
- package/assets/sass/elements/forms.scss +261 -261
- package/assets/sass/elements/links.scss +97 -97
- package/assets/sass/elements/lists.scss +159 -159
- package/assets/sass/elements/panel.scss +161 -161
- package/assets/sass/elements/tables.scss +290 -290
- package/assets/sass/elements/tooltips.scss +84 -84
- package/assets/sass/elements/type.scss +136 -136
- package/assets/sass/email.scss +65 -65
- package/assets/sass/error.scss +4 -4
- package/assets/sass/foundations/brand.scss +76 -72
- package/assets/sass/foundations/circles.scss +74 -74
- package/assets/sass/foundations/icons.scss +80 -80
- package/assets/sass/foundations/media.scss +50 -50
- package/assets/sass/foundations/reboot.scss +130 -130
- package/assets/sass/foundations/root.scss +125 -125
- package/assets/sass/main.scss +7 -7
- package/assets/svg/icons.svg +598 -598
- package/assets/svg/logo.svg +49 -43
- package/assets/ts/main.js +56 -56
- package/assets/ts/main.ts +68 -68
- package/assets/ts/modules/accordion.js +32 -32
- package/assets/ts/modules/accordion.ts +43 -43
- package/dist/components.es.js +381 -381
- package/dist/components.umd.js +16 -16
- package/package.json +96 -108
- package/src/.DS_Store +0 -0
- package/src/components/Accordion/Accordion.screenshot.vue +57 -57
- package/src/components/Accordion/Accordion.spec.js +63 -63
- package/src/components/Accordion/Accordion.vue +22 -22
- package/src/components/Accordion/AccordionItem.vue +52 -52
- package/src/components/Accordion/README.md +34 -34
- package/src/components/Alert/Alert.spec.js +49 -49
- package/src/components/Alert/Alert.vue +39 -39
- package/src/components/Alert/README.md +28 -28
- package/src/components/Banner/Banner.spec.js +28 -28
- package/src/components/Banner/Banner.vue +38 -38
- package/src/components/Banner/README.md +23 -23
- package/src/components/CardDeck/CardDeck.spec.js +99 -99
- package/src/components/CardDeck/CardDeck.vue +77 -77
- package/src/components/CardDeck/README.md +24 -24
- package/src/components/Carousel/Carousel.spec.js +45 -45
- package/src/components/Carousel/Carousel.vue +85 -85
- package/src/components/Carousel/README.md +19 -19
- package/src/components/Chart/Chart.spec.js +201 -201
- package/src/components/Chart/Chart.vue +88 -88
- package/src/components/Chart/README.md +17 -17
- package/src/components/Drawer/Drawer.vue +53 -53
- package/src/components/Drawer/README.md +22 -22
- package/src/components/Header/Header.spec.js +33 -33
- package/src/components/Header/Header.vue +38 -38
- package/src/components/Header/README.md +27 -27
- package/src/components/Modal/Modal.spec.js +22 -22
- package/src/components/Modal/Modal.vue +43 -43
- package/src/components/Modal/README.md +19 -19
- package/src/components/Nav/Nav.spec.js +35 -35
- package/src/components/Nav/Nav.vue +215 -215
- package/src/components/Nav/README.md +22 -22
- package/src/components/NoteFeed/NoteFeed.vue +79 -79
- package/src/components/NoteFeed/README.md +16 -16
- package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
- package/src/components/PropertySearchbar/README.md +25 -25
- package/src/components/Snapshot/README.md +20 -20
- package/src/components/Snapshot/Snapshot.vue +32 -32
- package/src/components/Stepper/README.md +32 -32
- package/src/components/Stepper/Step.vue +28 -28
- package/src/components/Stepper/Stepper.spec.js +99 -99
- package/src/components/Stepper/Stepper.vue +33 -33
- package/src/components/Tabs/README.md +27 -27
- package/src/components/Tabs/Tab.vue +32 -32
- package/src/components/Tabs/Tabs.vue +77 -77
- package/src/components/Testimonial/README.md +25 -25
- package/src/components/Testimonial/Testimonial.spec.js +57 -57
- package/src/components/Testimonial/Testimonial.vue +60 -60
- package/src/components/Timeline/README.md +18 -18
- package/src/components/Timeline/Timeline.spec.js +17 -17
- package/src/components/Timeline/Timeline.vue +24 -24
- package/src/elements/Card/Card.vue +122 -122
- package/src/elements/Card/README.md +24 -24
- package/src/elements/FileUploads/FileUploads.vue +48 -48
- package/src/elements/FileUploads/README.md +24 -24
- package/src/elements/Input/Input.vue +272 -272
- package/src/elements/Input/README.md +19 -19
- package/src/elements/Table/README.md +62 -62
- package/src/elements/Table/Table.spec.js +90 -90
- package/src/elements/Table/Table.vue +129 -129
- package/src/foundations/Icon/Icon.spec.js +24 -24
- package/src/foundations/Icon/Icon.vue +24 -24
- package/src/foundations/Icon/README.md +11 -11
- package/src/foundations/Logo/Logo.spec.js +56 -56
- package/src/foundations/Logo/Logo.vue +39 -39
- package/src/foundations/Logo/README.md +20 -20
- package/src/foundations/YoutubeVideo/README.md +11 -11
- package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
- package/src/helpers/strings.js +12 -12
- package/src/index.js +27 -27
- package/src/vue-shim.d.ts +6 -6
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
### Usage
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
<Stepper class="visualtest">
|
|
5
|
-
<Step status="warning">Warning status</Step>
|
|
6
|
-
<Step url="/step" status="danger">Danger status</Step>
|
|
7
|
-
<Step url="/step" status="success">Success status</Step>
|
|
8
|
-
<Step href="/step" current>Current step</Step>
|
|
9
|
-
<Step href="/step">Future step</Step>
|
|
10
|
-
</Stepper>
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Properties
|
|
14
|
-
|
|
15
|
-
| Option | Type | Default Value | Description |
|
|
16
|
-
| ------ | ---- | ------------- | ----------- |
|
|
17
|
-
| label | String | - | Optional label to title the component |
|
|
18
|
-
| endlabel | String | Complete | End label to signify the end of the process |
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
### Step Properties
|
|
22
|
-
|
|
23
|
-
| Option | Type | Default Value | Description |
|
|
24
|
-
| ------ | ---- | ------------- | ----------- |
|
|
25
|
-
| url | String | - | Add a url to take the user back to or ahead to said step, if a url is not passed the link is disabled. |
|
|
26
|
-
| status | String | - | Each step can have a status to highlight to the user whether the step was completed correctly. |
|
|
27
|
-
| current | String | - | Indicate whether this is the current step |
|
|
28
|
-
|
|
29
|
-
### Slots
|
|
30
|
-
|
|
31
|
-
| Option | Default Value | Description |
|
|
32
|
-
| ------ | ------------- | ----------- |
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Stepper class="visualtest">
|
|
5
|
+
<Step status="warning">Warning status</Step>
|
|
6
|
+
<Step url="/step" status="danger">Danger status</Step>
|
|
7
|
+
<Step url="/step" status="success">Success status</Step>
|
|
8
|
+
<Step href="/step" current>Current step</Step>
|
|
9
|
+
<Step href="/step">Future step</Step>
|
|
10
|
+
</Stepper>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Properties
|
|
14
|
+
|
|
15
|
+
| Option | Type | Default Value | Description |
|
|
16
|
+
| ------ | ---- | ------------- | ----------- |
|
|
17
|
+
| label | String | - | Optional label to title the component |
|
|
18
|
+
| endlabel | String | Complete | End label to signify the end of the process |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Step Properties
|
|
22
|
+
|
|
23
|
+
| Option | Type | Default Value | Description |
|
|
24
|
+
| ------ | ---- | ------------- | ----------- |
|
|
25
|
+
| url | String | - | Add a url to take the user back to or ahead to said step, if a url is not passed the link is disabled. |
|
|
26
|
+
| status | String | - | Each step can have a status to highlight to the user whether the step was completed correctly. |
|
|
27
|
+
| current | String | - | Indicate whether this is the current step |
|
|
28
|
+
|
|
29
|
+
### Slots
|
|
30
|
+
|
|
31
|
+
| Option | Default Value | Description |
|
|
32
|
+
| ------ | ------------- | ----------- |
|
|
33
33
|
| default | - | Container for step components |
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<li>
|
|
3
|
-
<a :href="url" :class="`${status?'bg-'+status:''}${typeof current != 'undefined'?'current':''}`" :aria-current="typeof current != 'undefined'?true:false">
|
|
4
|
-
<span><slot></slot></span>
|
|
5
|
-
<em class="visually-hidden" v-if="status"> - status: {{status}}</em>
|
|
6
|
-
</a>
|
|
7
|
-
</li>
|
|
8
|
-
</template>
|
|
9
|
-
|
|
10
|
-
<script>
|
|
11
|
-
export default {
|
|
12
|
-
name: 'Stepper',
|
|
13
|
-
props: {
|
|
14
|
-
url: {
|
|
15
|
-
type: String,
|
|
16
|
-
required: false
|
|
17
|
-
},
|
|
18
|
-
status: {
|
|
19
|
-
type: String,
|
|
20
|
-
required: false
|
|
21
|
-
},
|
|
22
|
-
current: {
|
|
23
|
-
type: String,
|
|
24
|
-
required: false
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<li>
|
|
3
|
+
<a :href="url" :class="`${status?'bg-'+status:''}${typeof current != 'undefined'?'current':''}`" :aria-current="typeof current != 'undefined'?true:false">
|
|
4
|
+
<span><slot></slot></span>
|
|
5
|
+
<em class="visually-hidden" v-if="status"> - status: {{status}}</em>
|
|
6
|
+
</a>
|
|
7
|
+
</li>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
export default {
|
|
12
|
+
name: 'Stepper',
|
|
13
|
+
props: {
|
|
14
|
+
url: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: false
|
|
17
|
+
},
|
|
18
|
+
status: {
|
|
19
|
+
type: String,
|
|
20
|
+
required: false
|
|
21
|
+
},
|
|
22
|
+
current: {
|
|
23
|
+
type: String,
|
|
24
|
+
required: false
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils'
|
|
2
|
-
import Stepper from './Stepper.vue'
|
|
3
|
-
import Step from './Step.vue'
|
|
4
|
-
|
|
5
|
-
describe('Stepper component', () => {
|
|
6
|
-
it('renders 4 steps', () => {
|
|
7
|
-
|
|
8
|
-
const test = mount(Stepper, {
|
|
9
|
-
propsData: {
|
|
10
|
-
'label': 'Start',
|
|
11
|
-
'endlabel': 'End'
|
|
12
|
-
},
|
|
13
|
-
global: {
|
|
14
|
-
stubs: {
|
|
15
|
-
'Step': Step
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
slots: {
|
|
19
|
-
default: `<Step status="success">Customer due diligence</Step>
|
|
20
|
-
<Step url="/step" status="success">Legal Preperation</Step>
|
|
21
|
-
<Step url="/step" current>Financial Preparation</Step>
|
|
22
|
-
<Step url="/step">Surveys</Step>`
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
expect(test.findAll('a').length).toBe(4)
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
it('renders a label when set', () => {
|
|
30
|
-
|
|
31
|
-
const test = mount(Stepper, {
|
|
32
|
-
propsData: {
|
|
33
|
-
'label': 'Start',
|
|
34
|
-
'endlabel': 'End'
|
|
35
|
-
},
|
|
36
|
-
global: {
|
|
37
|
-
stubs: {
|
|
38
|
-
'Step': Step
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
slots: {
|
|
42
|
-
default: `<Step status="success">Customer due diligence</Step>
|
|
43
|
-
<Step url="/step" status="success">Legal Preperation</Step>
|
|
44
|
-
<Step url="/step" current>Financial Preparation</Step>
|
|
45
|
-
<Step url="/step">Surveys</Step>`
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
expect(test.find('.stepper__start').html()).toContain('Start')
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
it('renders an end label when set', () => {
|
|
53
|
-
|
|
54
|
-
const test = mount(Stepper, {
|
|
55
|
-
propsData: {
|
|
56
|
-
'label': 'Start',
|
|
57
|
-
'endlabel': 'End'
|
|
58
|
-
},
|
|
59
|
-
global: {
|
|
60
|
-
stubs: {
|
|
61
|
-
'Step': Step
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
slots: {
|
|
65
|
-
default: `<Step status="success">Customer due diligence</Step>
|
|
66
|
-
<Step url="/step" status="success">Legal Preperation</Step>
|
|
67
|
-
<Step url="/step" current>Financial Preparation</Step>
|
|
68
|
-
<Step url="/step">Surveys</Step>`
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
expect(test.find('.stepper__end').html()).toContain('End')
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
it('sets status on steps', () => {
|
|
77
|
-
|
|
78
|
-
const test = mount(Stepper, {
|
|
79
|
-
propsData: {
|
|
80
|
-
'label': 'Start',
|
|
81
|
-
'endlabel': 'End'
|
|
82
|
-
},
|
|
83
|
-
global: {
|
|
84
|
-
stubs: {
|
|
85
|
-
'Step': Step
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
slots: {
|
|
89
|
-
default: `<Step status="success">Customer due diligence</Step>
|
|
90
|
-
<Step url="/step" status="success">Legal Preperation</Step>
|
|
91
|
-
<Step url="/step" current>Financial Preparation</Step>
|
|
92
|
-
<Step url="/step">Surveys</Step>`
|
|
93
|
-
}
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
expect(test.find('.bg-success').exists()).toBe(true)
|
|
97
|
-
expect(test.find('.current').exists()).toBe(true)
|
|
98
|
-
})
|
|
99
|
-
})
|
|
1
|
+
import { mount } from '@vue/test-utils'
|
|
2
|
+
import Stepper from './Stepper.vue'
|
|
3
|
+
import Step from './Step.vue'
|
|
4
|
+
|
|
5
|
+
describe('Stepper component', () => {
|
|
6
|
+
it('renders 4 steps', () => {
|
|
7
|
+
|
|
8
|
+
const test = mount(Stepper, {
|
|
9
|
+
propsData: {
|
|
10
|
+
'label': 'Start',
|
|
11
|
+
'endlabel': 'End'
|
|
12
|
+
},
|
|
13
|
+
global: {
|
|
14
|
+
stubs: {
|
|
15
|
+
'Step': Step
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
slots: {
|
|
19
|
+
default: `<Step status="success">Customer due diligence</Step>
|
|
20
|
+
<Step url="/step" status="success">Legal Preperation</Step>
|
|
21
|
+
<Step url="/step" current>Financial Preparation</Step>
|
|
22
|
+
<Step url="/step">Surveys</Step>`
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
expect(test.findAll('a').length).toBe(4)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('renders a label when set', () => {
|
|
30
|
+
|
|
31
|
+
const test = mount(Stepper, {
|
|
32
|
+
propsData: {
|
|
33
|
+
'label': 'Start',
|
|
34
|
+
'endlabel': 'End'
|
|
35
|
+
},
|
|
36
|
+
global: {
|
|
37
|
+
stubs: {
|
|
38
|
+
'Step': Step
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
slots: {
|
|
42
|
+
default: `<Step status="success">Customer due diligence</Step>
|
|
43
|
+
<Step url="/step" status="success">Legal Preperation</Step>
|
|
44
|
+
<Step url="/step" current>Financial Preparation</Step>
|
|
45
|
+
<Step url="/step">Surveys</Step>`
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
expect(test.find('.stepper__start').html()).toContain('Start')
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
it('renders an end label when set', () => {
|
|
53
|
+
|
|
54
|
+
const test = mount(Stepper, {
|
|
55
|
+
propsData: {
|
|
56
|
+
'label': 'Start',
|
|
57
|
+
'endlabel': 'End'
|
|
58
|
+
},
|
|
59
|
+
global: {
|
|
60
|
+
stubs: {
|
|
61
|
+
'Step': Step
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
slots: {
|
|
65
|
+
default: `<Step status="success">Customer due diligence</Step>
|
|
66
|
+
<Step url="/step" status="success">Legal Preperation</Step>
|
|
67
|
+
<Step url="/step" current>Financial Preparation</Step>
|
|
68
|
+
<Step url="/step">Surveys</Step>`
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
expect(test.find('.stepper__end').html()).toContain('End')
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
it('sets status on steps', () => {
|
|
77
|
+
|
|
78
|
+
const test = mount(Stepper, {
|
|
79
|
+
propsData: {
|
|
80
|
+
'label': 'Start',
|
|
81
|
+
'endlabel': 'End'
|
|
82
|
+
},
|
|
83
|
+
global: {
|
|
84
|
+
stubs: {
|
|
85
|
+
'Step': Step
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
slots: {
|
|
89
|
+
default: `<Step status="success">Customer due diligence</Step>
|
|
90
|
+
<Step url="/step" status="success">Legal Preperation</Step>
|
|
91
|
+
<Step url="/step" current>Financial Preparation</Step>
|
|
92
|
+
<Step url="/step">Surveys</Step>`
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
expect(test.find('.bg-success').exists()).toBe(true)
|
|
97
|
+
expect(test.find('.current').exists()).toBe(true)
|
|
98
|
+
})
|
|
99
|
+
})
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="container">
|
|
3
|
-
<nav class="stepper" :aria-label="label?label:'Progress'">
|
|
4
|
-
<span class="h6 stepper__start" v-if="label">{{label}}</span>
|
|
5
|
-
<ol class="list-unstyled">
|
|
6
|
-
<slot><!-- Use for titles etc --></slot>
|
|
7
|
-
</ol>
|
|
8
|
-
<span class="h6 stepper__end">{{endlabel}}</span>
|
|
9
|
-
</nav>
|
|
10
|
-
</div>
|
|
11
|
-
</template>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<style lang="scss">
|
|
15
|
-
@import "../../../assets/sass/components/stepper.scss";
|
|
16
|
-
</style>
|
|
17
|
-
|
|
18
|
-
<script>
|
|
19
|
-
export default {
|
|
20
|
-
name: 'Stepper',
|
|
21
|
-
props: {
|
|
22
|
-
label: {
|
|
23
|
-
type: String,
|
|
24
|
-
required: false
|
|
25
|
-
},
|
|
26
|
-
endlabel: {
|
|
27
|
-
type: String,
|
|
28
|
-
required: false,
|
|
29
|
-
default: "Complete"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container">
|
|
3
|
+
<nav class="stepper" :aria-label="label?label:'Progress'">
|
|
4
|
+
<span class="h6 stepper__start" v-if="label">{{label}}</span>
|
|
5
|
+
<ol class="list-unstyled">
|
|
6
|
+
<slot><!-- Use for titles etc --></slot>
|
|
7
|
+
</ol>
|
|
8
|
+
<span class="h6 stepper__end">{{endlabel}}</span>
|
|
9
|
+
</nav>
|
|
10
|
+
</div>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<style lang="scss">
|
|
15
|
+
@import "../../../assets/sass/components/stepper.scss";
|
|
16
|
+
</style>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
export default {
|
|
20
|
+
name: 'Stepper',
|
|
21
|
+
props: {
|
|
22
|
+
label: {
|
|
23
|
+
type: String,
|
|
24
|
+
required: false
|
|
25
|
+
},
|
|
26
|
+
endlabel: {
|
|
27
|
+
type: String,
|
|
28
|
+
required: false,
|
|
29
|
+
default: "Complete"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
@@ -1,28 +1,28 @@
|
|
|
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
|
-
| lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the tab link. |
|
|
23
|
-
|
|
24
|
-
### Slots
|
|
25
|
-
|
|
26
|
-
| Option | Default Value | Description |
|
|
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
|
+
| lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the tab link. |
|
|
23
|
+
|
|
24
|
+
### Slots
|
|
25
|
+
|
|
26
|
+
| Option | Default Value | Description |
|
|
27
|
+
| ------ | ------------- | ----------- |
|
|
28
28
|
| default | - | Can be populated with Tab components |
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tab" v-if="show">
|
|
3
|
-
<slot></slot>
|
|
4
|
-
</div>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<script>
|
|
8
|
-
export default {
|
|
9
|
-
name: 'Tab',
|
|
10
|
-
props: {
|
|
11
|
-
title: {
|
|
12
|
-
type: String,
|
|
13
|
-
required: true
|
|
14
|
-
},
|
|
15
|
-
lazy: {
|
|
16
|
-
type: Boolean,
|
|
17
|
-
required: false
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
data() {
|
|
21
|
-
return {
|
|
22
|
-
show: this.lazy ? false : true
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
watch: {
|
|
26
|
-
|
|
27
|
-
show(newVal, oldVal) {
|
|
28
|
-
console.log(newVal)
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tab" v-if="show">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
name: 'Tab',
|
|
10
|
+
props: {
|
|
11
|
+
title: {
|
|
12
|
+
type: String,
|
|
13
|
+
required: true
|
|
14
|
+
},
|
|
15
|
+
lazy: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
required: false
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
data() {
|
|
21
|
+
return {
|
|
22
|
+
show: this.lazy ? false : true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
watch: {
|
|
26
|
+
|
|
27
|
+
show(newVal, oldVal) {
|
|
28
|
+
console.log(newVal)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="container tabs__container" ref="wrapper">
|
|
3
|
-
|
|
4
|
-
<input type="radio" class="tab__input" v-for="(value,index) in tabLinks()" :key="index" :data-key="index" :name="value.name" :id="value.id" :checked="(index == 0 ? true:false)" />
|
|
5
|
-
|
|
6
|
-
<div class="tabs__links">
|
|
7
|
-
<label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link" v-on:click="openTab(index)">
|
|
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/components/tabs.scss";
|
|
19
|
-
</style>
|
|
20
|
-
|
|
21
|
-
<script>
|
|
22
|
-
export default {
|
|
23
|
-
name: 'Tabs',
|
|
24
|
-
data () {
|
|
25
|
-
return {
|
|
26
|
-
tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
computed: {
|
|
30
|
-
tabLinks (){
|
|
31
|
-
return () => {
|
|
32
|
-
|
|
33
|
-
const tabLinks = [];
|
|
34
|
-
let i = 1;
|
|
35
|
-
|
|
36
|
-
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
37
|
-
|
|
38
|
-
// Check if the value in the object is actually a tab and has the correct data
|
|
39
|
-
if(value.props && value.props.title){
|
|
40
|
-
|
|
41
|
-
let tabTitle = value.props.title;
|
|
42
|
-
|
|
43
|
-
let tab = {
|
|
44
|
-
name: this.tabsID,
|
|
45
|
-
id: this.tabsID+"_tab"+i++,
|
|
46
|
-
tabTitle: tabTitle
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
tabLinks.push(tab);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return tabLinks;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
methods: {
|
|
58
|
-
openTab: function (index) {
|
|
59
|
-
|
|
60
|
-
let i = 0;
|
|
61
|
-
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
62
|
-
|
|
63
|
-
if(value.props && value.props.title){
|
|
64
|
-
|
|
65
|
-
if(i == index){
|
|
66
|
-
|
|
67
|
-
console.log(value)
|
|
68
|
-
value.type.data().show = true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
i++;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container tabs__container" ref="wrapper">
|
|
3
|
+
|
|
4
|
+
<input type="radio" class="tab__input" v-for="(value,index) in tabLinks()" :key="index" :data-key="index" :name="value.name" :id="value.id" :checked="(index == 0 ? true:false)" />
|
|
5
|
+
|
|
6
|
+
<div class="tabs__links">
|
|
7
|
+
<label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link" v-on:click="openTab(index)">
|
|
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/components/tabs.scss";
|
|
19
|
+
</style>
|
|
20
|
+
|
|
21
|
+
<script>
|
|
22
|
+
export default {
|
|
23
|
+
name: 'Tabs',
|
|
24
|
+
data () {
|
|
25
|
+
return {
|
|
26
|
+
tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
computed: {
|
|
30
|
+
tabLinks (){
|
|
31
|
+
return () => {
|
|
32
|
+
|
|
33
|
+
const tabLinks = [];
|
|
34
|
+
let i = 1;
|
|
35
|
+
|
|
36
|
+
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
37
|
+
|
|
38
|
+
// Check if the value in the object is actually a tab and has the correct data
|
|
39
|
+
if(value.props && value.props.title){
|
|
40
|
+
|
|
41
|
+
let tabTitle = value.props.title;
|
|
42
|
+
|
|
43
|
+
let tab = {
|
|
44
|
+
name: this.tabsID,
|
|
45
|
+
id: this.tabsID+"_tab"+i++,
|
|
46
|
+
tabTitle: tabTitle
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
tabLinks.push(tab);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return tabLinks;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
methods: {
|
|
58
|
+
openTab: function (index) {
|
|
59
|
+
|
|
60
|
+
let i = 0;
|
|
61
|
+
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
62
|
+
|
|
63
|
+
if(value.props && value.props.title){
|
|
64
|
+
|
|
65
|
+
if(i == index){
|
|
66
|
+
|
|
67
|
+
console.log(value)
|
|
68
|
+
value.type.data().show = true;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
i++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
</script>
|