@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,53 +1,53 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div ref="wrapper">
|
|
3
|
-
<input type="checkbox" name="showDrawer" id="showDrawer" class="d-none">
|
|
4
|
-
<div class="drawer__btn pb-0">
|
|
5
|
-
<div class="container text-end pb-0">
|
|
6
|
-
<label for="showDrawer" class="btn btn-secondary me-0">{{label}}</label>
|
|
7
|
-
</div>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="drawer" id="drawer" ref="drawer">
|
|
10
|
-
<div class="container text-end pb-0">
|
|
11
|
-
<label for="showDrawer" class="btn btn-tertiary mb-0 me-0 py-1 px-2"><span class="visually-hidden">Close</span>✕</label>
|
|
12
|
-
</div>
|
|
13
|
-
<slot></slot>
|
|
14
|
-
</div>
|
|
15
|
-
<hr id="drawer-end" />
|
|
16
|
-
</div>
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<style lang="scss">
|
|
21
|
-
@import "../../../assets/sass/components/drawer.scss";
|
|
22
|
-
</style>
|
|
23
|
-
|
|
24
|
-
<script>
|
|
25
|
-
import drawer from '../../../assets/js/modules/drawer.js'
|
|
26
|
-
|
|
27
|
-
export default {
|
|
28
|
-
name: 'Header',
|
|
29
|
-
props: {
|
|
30
|
-
label: {
|
|
31
|
-
type: String,
|
|
32
|
-
required: true
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
mounted(){
|
|
36
|
-
|
|
37
|
-
this.$nextTick(function () {
|
|
38
|
-
|
|
39
|
-
let element = this.$refs.wrapper;
|
|
40
|
-
|
|
41
|
-
const fragment = document.createDocumentFragment();
|
|
42
|
-
Array.from(element.childNodes).forEach(child => fragment.appendChild(child));
|
|
43
|
-
element.parentNode.insertBefore(fragment, element);
|
|
44
|
-
element.parentNode.removeChild(element);
|
|
45
|
-
|
|
46
|
-
this.$nextTick(function () {
|
|
47
|
-
|
|
48
|
-
drawer(this.$refs.drawer);
|
|
49
|
-
})
|
|
50
|
-
})
|
|
51
|
-
},
|
|
52
|
-
}
|
|
53
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div ref="wrapper">
|
|
3
|
+
<input type="checkbox" name="showDrawer" id="showDrawer" class="d-none">
|
|
4
|
+
<div class="drawer__btn pb-0">
|
|
5
|
+
<div class="container text-end pb-0">
|
|
6
|
+
<label for="showDrawer" class="btn btn-secondary me-0">{{label}}</label>
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="drawer" id="drawer" ref="drawer">
|
|
10
|
+
<div class="container text-end pb-0">
|
|
11
|
+
<label for="showDrawer" class="btn btn-tertiary mb-0 me-0 py-1 px-2"><span class="visually-hidden">Close</span>✕</label>
|
|
12
|
+
</div>
|
|
13
|
+
<slot></slot>
|
|
14
|
+
</div>
|
|
15
|
+
<hr id="drawer-end" />
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<style lang="scss">
|
|
21
|
+
@import "../../../assets/sass/components/drawer.scss";
|
|
22
|
+
</style>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
import drawer from '../../../assets/js/modules/drawer.js'
|
|
26
|
+
|
|
27
|
+
export default {
|
|
28
|
+
name: 'Header',
|
|
29
|
+
props: {
|
|
30
|
+
label: {
|
|
31
|
+
type: String,
|
|
32
|
+
required: true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
mounted(){
|
|
36
|
+
|
|
37
|
+
this.$nextTick(function () {
|
|
38
|
+
|
|
39
|
+
let element = this.$refs.wrapper;
|
|
40
|
+
|
|
41
|
+
const fragment = document.createDocumentFragment();
|
|
42
|
+
Array.from(element.childNodes).forEach(child => fragment.appendChild(child));
|
|
43
|
+
element.parentNode.insertBefore(fragment, element);
|
|
44
|
+
element.parentNode.removeChild(element);
|
|
45
|
+
|
|
46
|
+
this.$nextTick(function () {
|
|
47
|
+
|
|
48
|
+
drawer(this.$refs.drawer);
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
},
|
|
52
|
+
}
|
|
53
|
+
</script>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
### Usage
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
<Drawer label="Open drawer">
|
|
5
|
-
<div class="container">
|
|
6
|
-
<h2>Drawer contentent</h2>
|
|
7
|
-
</div>
|
|
8
|
-
</Drawer>
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### Properties
|
|
12
|
-
|
|
13
|
-
| Option | Type | Default Value | Description |
|
|
14
|
-
| ------ | ---- | ------------- | ----------- |
|
|
15
|
-
| label | String | - | Required text for the button |
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### Slots
|
|
20
|
-
|
|
21
|
-
| Option | Default Value | Description |
|
|
22
|
-
| ------ | ------------- | ----------- |
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Drawer label="Open drawer">
|
|
5
|
+
<div class="container">
|
|
6
|
+
<h2>Drawer contentent</h2>
|
|
7
|
+
</div>
|
|
8
|
+
</Drawer>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Properties
|
|
12
|
+
|
|
13
|
+
| Option | Type | Default Value | Description |
|
|
14
|
+
| ------ | ---- | ------------- | ----------- |
|
|
15
|
+
| label | String | - | Required text for the button |
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Slots
|
|
20
|
+
|
|
21
|
+
| Option | Default Value | Description |
|
|
22
|
+
| ------ | ------------- | ----------- |
|
|
23
23
|
| default | - | Will display within the drawer |
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { shallowMount } from '@vue/test-utils'
|
|
2
|
-
import Header from './Header.vue'
|
|
3
|
-
|
|
4
|
-
describe('Header component', () => {
|
|
5
|
-
|
|
6
|
-
const test = shallowMount(Header, {
|
|
7
|
-
propsData: {
|
|
8
|
-
title: 'Page title',
|
|
9
|
-
image: '/img/src/img.png'
|
|
10
|
-
},
|
|
11
|
-
slots: {
|
|
12
|
-
default: '<p>Hello</p>',
|
|
13
|
-
breadcrumb: '<ul class="breadcrumb"></ul>'
|
|
14
|
-
}
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
it('renders the page title', () => {
|
|
18
|
-
expect(test.html()).toContain('<h1>Page title</h1>')
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
it('renders the page description', () => {
|
|
22
|
-
expect(test.html()).toContain('<p>Hello</p>')
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
it('renders the breadcrumb trail', () => {
|
|
26
|
-
expect(test.html()).toContain('<ul class="breadcrumb"></ul>')
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
it('renders the image', () => {
|
|
30
|
-
expect(test.html()).toContain('<source srcset="/img/src/img.png" media="(min-width: 62em)">')
|
|
31
|
-
expect(test.html()).toContain('<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="">')
|
|
32
|
-
})
|
|
33
|
-
})
|
|
1
|
+
import { shallowMount } from '@vue/test-utils'
|
|
2
|
+
import Header from './Header.vue'
|
|
3
|
+
|
|
4
|
+
describe('Header component', () => {
|
|
5
|
+
|
|
6
|
+
const test = shallowMount(Header, {
|
|
7
|
+
propsData: {
|
|
8
|
+
title: 'Page title',
|
|
9
|
+
image: '/img/src/img.png'
|
|
10
|
+
},
|
|
11
|
+
slots: {
|
|
12
|
+
default: '<p>Hello</p>',
|
|
13
|
+
breadcrumb: '<ul class="breadcrumb"></ul>'
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('renders the page title', () => {
|
|
18
|
+
expect(test.html()).toContain('<h1>Page title</h1>')
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('renders the page description', () => {
|
|
22
|
+
expect(test.html()).toContain('<p>Hello</p>')
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('renders the breadcrumb trail', () => {
|
|
26
|
+
expect(test.html()).toContain('<ul class="breadcrumb"></ul>')
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('renders the image', () => {
|
|
30
|
+
expect(test.html()).toContain('<source srcset="/img/src/img.png" media="(min-width: 62em)">')
|
|
31
|
+
expect(test.html()).toContain('<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="">')
|
|
32
|
+
})
|
|
33
|
+
})
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<header class="header-banner">
|
|
3
|
-
<div class="container">
|
|
4
|
-
<!-- Space for a breadcrumb trail -->
|
|
5
|
-
<slot name="breadcrumb"></slot>
|
|
6
|
-
<div class="header-banner__inner">
|
|
7
|
-
<h1 v-html="title"></h1>
|
|
8
|
-
<slot></slot>
|
|
9
|
-
</div>
|
|
10
|
-
</div>
|
|
11
|
-
<picture v-if="image">
|
|
12
|
-
<!-- Actual image only loaded on desktops -->
|
|
13
|
-
<source :srcset="image" media="(min-width: 62em)">
|
|
14
|
-
<!-- Placeholder image -->
|
|
15
|
-
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" />
|
|
16
|
-
</picture>
|
|
17
|
-
</header>
|
|
18
|
-
</template>
|
|
19
|
-
|
|
20
|
-
<style lang="scss">
|
|
21
|
-
@import "../../../assets/sass/components/header.scss";
|
|
22
|
-
</style>
|
|
23
|
-
|
|
24
|
-
<script>
|
|
25
|
-
export default {
|
|
26
|
-
name: 'Header',
|
|
27
|
-
props: {
|
|
28
|
-
title: {
|
|
29
|
-
type: String,
|
|
30
|
-
required: true
|
|
31
|
-
},
|
|
32
|
-
image: {
|
|
33
|
-
type: String,
|
|
34
|
-
required: false
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<header class="header-banner">
|
|
3
|
+
<div class="container">
|
|
4
|
+
<!-- Space for a breadcrumb trail -->
|
|
5
|
+
<slot name="breadcrumb"></slot>
|
|
6
|
+
<div class="header-banner__inner">
|
|
7
|
+
<h1 v-html="title"></h1>
|
|
8
|
+
<slot></slot>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
<picture v-if="image">
|
|
12
|
+
<!-- Actual image only loaded on desktops -->
|
|
13
|
+
<source :srcset="image" media="(min-width: 62em)">
|
|
14
|
+
<!-- Placeholder image -->
|
|
15
|
+
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" />
|
|
16
|
+
</picture>
|
|
17
|
+
</header>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<style lang="scss">
|
|
21
|
+
@import "../../../assets/sass/components/header.scss";
|
|
22
|
+
</style>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
export default {
|
|
26
|
+
name: 'Header',
|
|
27
|
+
props: {
|
|
28
|
+
title: {
|
|
29
|
+
type: String,
|
|
30
|
+
required: true
|
|
31
|
+
},
|
|
32
|
+
image: {
|
|
33
|
+
type: String,
|
|
34
|
+
required: false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
### Usage
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
<Header title="Page title" :image="require('../../assets/code.jpeg')">
|
|
5
|
-
<template v-slot:breadcrumb>
|
|
6
|
-
<ul class="breadcrumb">
|
|
7
|
-
<li><a href="/">Home</a></li>
|
|
8
|
-
<li><a href="/top">Top level</a></li>
|
|
9
|
-
</ul>
|
|
10
|
-
</template>
|
|
11
|
-
<p>Page description</p>
|
|
12
|
-
</Header>
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
### Properties
|
|
16
|
-
|
|
17
|
-
| Option | Type | Default Value | Description |
|
|
18
|
-
| ------ | ---- | ------------- | ----------- |
|
|
19
|
-
| title | String | - | Required |
|
|
20
|
-
| image | String | - | Optional image url to display in the background |
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
### Slots
|
|
24
|
-
|
|
25
|
-
| Option | Default Value | Description |
|
|
26
|
-
| ------ | ------------- | ----------- |
|
|
27
|
-
| default | - | Will display underneath the heading inside of the white box |
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Header title="Page title" :image="require('../../assets/code.jpeg')">
|
|
5
|
+
<template v-slot:breadcrumb>
|
|
6
|
+
<ul class="breadcrumb">
|
|
7
|
+
<li><a href="/">Home</a></li>
|
|
8
|
+
<li><a href="/top">Top level</a></li>
|
|
9
|
+
</ul>
|
|
10
|
+
</template>
|
|
11
|
+
<p>Page description</p>
|
|
12
|
+
</Header>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Properties
|
|
16
|
+
|
|
17
|
+
| Option | Type | Default Value | Description |
|
|
18
|
+
| ------ | ---- | ------------- | ----------- |
|
|
19
|
+
| title | String | - | Required |
|
|
20
|
+
| image | String | - | Optional image url to display in the background |
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Slots
|
|
24
|
+
|
|
25
|
+
| Option | Default Value | Description |
|
|
26
|
+
| ------ | ------------- | ----------- |
|
|
27
|
+
| default | - | Will display underneath the heading inside of the white box |
|
|
28
28
|
| breadcrumb | - | An optional space to add a breadcrumb trail list. |
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { shallowMount } from '@vue/test-utils'
|
|
2
|
-
import Modal from './Modal.vue'
|
|
3
|
-
|
|
4
|
-
describe('Modal component', () => {
|
|
5
|
-
|
|
6
|
-
const test = shallowMount(Modal, {
|
|
7
|
-
propsData: {
|
|
8
|
-
id: 'modal'
|
|
9
|
-
},
|
|
10
|
-
slots: {
|
|
11
|
-
default: '<p>Hello</p>'
|
|
12
|
-
}
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
it('renders the close button', () => {
|
|
16
|
-
expect(test.html()).toContain('<a href="#close" class="btn btn-tertiary py-1 px-2"><span class="visually-hidden">Close</span>✕</a>')
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
it('renders the modal content', () => {
|
|
20
|
-
expect(test.html()).toContain('<p>Hello</p>')
|
|
21
|
-
})
|
|
22
|
-
})
|
|
1
|
+
import { shallowMount } from '@vue/test-utils'
|
|
2
|
+
import Modal from './Modal.vue'
|
|
3
|
+
|
|
4
|
+
describe('Modal component', () => {
|
|
5
|
+
|
|
6
|
+
const test = shallowMount(Modal, {
|
|
7
|
+
propsData: {
|
|
8
|
+
id: 'modal'
|
|
9
|
+
},
|
|
10
|
+
slots: {
|
|
11
|
+
default: '<p>Hello</p>'
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('renders the close button', () => {
|
|
16
|
+
expect(test.html()).toContain('<a href="#close" class="btn btn-tertiary py-1 px-2"><span class="visually-hidden">Close</span>✕</a>')
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('renders the modal content', () => {
|
|
20
|
+
expect(test.html()).toContain('<p>Hello</p>')
|
|
21
|
+
})
|
|
22
|
+
})
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="modal" :id="id" role="dialog" modal="true" ref="modal">
|
|
3
|
-
<a :href="`#${returnid?returnid:''}`" tabindex="-1"><span class="visually-hidden">Close</span></a>
|
|
4
|
-
<div class="modal__outer">
|
|
5
|
-
<a :href="`#${returnid?returnid:''}`" class="btn btn-tertiary py-1 px-2"><span class="visually-hidden">Close</span>✕</a>
|
|
6
|
-
<div class="modal__inner">
|
|
7
|
-
<slot></slot>
|
|
8
|
-
</div>
|
|
9
|
-
</div>
|
|
10
|
-
<button class="modal__dock--left btn btn-prev" tabindex="-1">Left</button>
|
|
11
|
-
<button class="modal__dock--right btn btn-next" tabindex="-1">Right</button>
|
|
12
|
-
</div>
|
|
13
|
-
</template>
|
|
14
|
-
|
|
15
|
-
<style lang="scss">
|
|
16
|
-
@import "../../../assets/sass/components/modal.scss";
|
|
17
|
-
</style>
|
|
18
|
-
|
|
19
|
-
<script>
|
|
20
|
-
import modal from '../../../assets/js/modules/modal.js'
|
|
21
|
-
|
|
22
|
-
export default {
|
|
23
|
-
name: 'Modal',
|
|
24
|
-
props: {
|
|
25
|
-
id: {
|
|
26
|
-
type: String,
|
|
27
|
-
required: true
|
|
28
|
-
},
|
|
29
|
-
returnid: {
|
|
30
|
-
type: String,
|
|
31
|
-
default: 'close',
|
|
32
|
-
required: false
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
mounted(){
|
|
36
|
-
|
|
37
|
-
this.$nextTick(function () {
|
|
38
|
-
|
|
39
|
-
modal(this.$refs.modal);
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="modal" :id="id" role="dialog" modal="true" ref="modal">
|
|
3
|
+
<a :href="`#${returnid?returnid:''}`" tabindex="-1"><span class="visually-hidden">Close</span></a>
|
|
4
|
+
<div class="modal__outer">
|
|
5
|
+
<a :href="`#${returnid?returnid:''}`" class="btn btn-tertiary py-1 px-2"><span class="visually-hidden">Close</span>✕</a>
|
|
6
|
+
<div class="modal__inner">
|
|
7
|
+
<slot></slot>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
<button class="modal__dock--left btn btn-prev" tabindex="-1">Left</button>
|
|
11
|
+
<button class="modal__dock--right btn btn-next" tabindex="-1">Right</button>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<style lang="scss">
|
|
16
|
+
@import "../../../assets/sass/components/modal.scss";
|
|
17
|
+
</style>
|
|
18
|
+
|
|
19
|
+
<script>
|
|
20
|
+
import modal from '../../../assets/js/modules/modal.js'
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
name: 'Modal',
|
|
24
|
+
props: {
|
|
25
|
+
id: {
|
|
26
|
+
type: String,
|
|
27
|
+
required: true
|
|
28
|
+
},
|
|
29
|
+
returnid: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: 'close',
|
|
32
|
+
required: false
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
mounted(){
|
|
36
|
+
|
|
37
|
+
this.$nextTick(function () {
|
|
38
|
+
|
|
39
|
+
modal(this.$refs.modal);
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</script>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
### Usage
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
<Modal id="modal">
|
|
5
|
-
<!-- content -->
|
|
6
|
-
</Modal>
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
### Properties
|
|
10
|
-
|
|
11
|
-
| Option | Type | Default Value | Description |
|
|
12
|
-
| ------ | ---- | ------------- | ----------- |
|
|
13
|
-
| id | String | - | Required |
|
|
14
|
-
| returnid | String | close | Override the default id so that it will anchor to a specific location on the page. |
|
|
15
|
-
|
|
16
|
-
### Slots
|
|
17
|
-
|
|
18
|
-
| Option | Default Value | Description |
|
|
19
|
-
| ------ | ------------- | ----------- |
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Modal id="modal">
|
|
5
|
+
<!-- content -->
|
|
6
|
+
</Modal>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
### Properties
|
|
10
|
+
|
|
11
|
+
| Option | Type | Default Value | Description |
|
|
12
|
+
| ------ | ---- | ------------- | ----------- |
|
|
13
|
+
| id | String | - | Required |
|
|
14
|
+
| returnid | String | close | Override the default id so that it will anchor to a specific location on the page. |
|
|
15
|
+
|
|
16
|
+
### Slots
|
|
17
|
+
|
|
18
|
+
| Option | Default Value | Description |
|
|
19
|
+
| ------ | ------------- | ----------- |
|
|
20
20
|
| default | - | Will display within the modal |
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { shallowMount } from '@vue/test-utils'
|
|
2
|
-
import Nav from './Nav.vue'
|
|
3
|
-
|
|
4
|
-
describe('Nav component', () => {
|
|
5
|
-
/* Logo */
|
|
6
|
-
it('renders the iam property logo by default', () => {
|
|
7
|
-
const test = shallowMount(Nav, {
|
|
8
|
-
propsData: { }
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
expect(test.html()).toContain('<logo-stub id="property" path=\"/svg/logo.svg\" class=\"pb-0\"></logo-stub>')
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('renders the correct logo when a logo id is passed', () => {
|
|
15
|
-
const test = shallowMount(Nav, {
|
|
16
|
-
propsData: {
|
|
17
|
-
logo: 'sold'
|
|
18
|
-
}
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
expect(test.html()).toContain('<logo-stub id="sold" path=\"/svg/logo.svg\" class=\"pb-0\"></logo-stub>')
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
/* Menu button */
|
|
25
|
-
it('renders the iam property logo by default', () => {
|
|
26
|
-
const test = shallowMount(Nav, {
|
|
27
|
-
propsData: { }
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
expect(test.html()).toContain('<label for="showMenu">Menu</label>')
|
|
31
|
-
expect(test.html()).toContain('<input type="checkbox" name="showSearch" id="showSearch" class="d-none">')
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})
|
|
1
|
+
import { shallowMount } from '@vue/test-utils'
|
|
2
|
+
import Nav from './Nav.vue'
|
|
3
|
+
|
|
4
|
+
describe('Nav component', () => {
|
|
5
|
+
/* Logo */
|
|
6
|
+
it('renders the iam property logo by default', () => {
|
|
7
|
+
const test = shallowMount(Nav, {
|
|
8
|
+
propsData: { }
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
expect(test.html()).toContain('<logo-stub id="property" path=\"/svg/logo.svg\" class=\"pb-0\"></logo-stub>')
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('renders the correct logo when a logo id is passed', () => {
|
|
15
|
+
const test = shallowMount(Nav, {
|
|
16
|
+
propsData: {
|
|
17
|
+
logo: 'sold'
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
expect(test.html()).toContain('<logo-stub id="sold" path=\"/svg/logo.svg\" class=\"pb-0\"></logo-stub>')
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
/* Menu button */
|
|
25
|
+
it('renders the iam property logo by default', () => {
|
|
26
|
+
const test = shallowMount(Nav, {
|
|
27
|
+
propsData: { }
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
expect(test.html()).toContain('<label for="showMenu">Menu</label>')
|
|
31
|
+
expect(test.html()).toContain('<input type="checkbox" name="showSearch" id="showSearch" class="d-none">')
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
})
|