@worksafevictoria/wcl7.5 1.5.0 → 1.6.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/.storybook/preview.js +20 -13
- package/bin/deploy.sh +1 -1
- package/lib/utility.js +10 -8
- package/package.json +4 -4
- package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
- package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
- package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
- package/src/assets/styles/modal.scss +51 -0
- package/src/components/Common/CardGrid/index.vue +56 -51
- package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
- package/src/components/Common/CardGridItem/index.vue +77 -63
- package/src/components/Containers/Carousel/index.vue +14 -7
- package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
- package/src/components/Containers/HomepageHeader/index.vue +2 -26
- package/src/components/Containers/HomepageHeaderNew/index.stories.js +15 -15
- package/src/components/Containers/HomepageHeaderNew/index.vue +97 -68
- package/src/components/Containers/SectionGroup/index.vue +1 -1
- package/src/components/Containers/Subheader/index.vue +5 -1
- package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
- package/src/components/Global/AppFooter/index.vue +14 -7
- package/src/components/Global/AppHeaderNew/styles.scss +10 -15
- package/src/components/Global/BackToTop/index.vue +8 -8
- package/src/components/Global/Cookies/index.stories.js +16 -10
- package/src/components/Global/Cookies/index.vue +280 -243
- package/src/components/Global/Cookies/styles.scss +54 -54
- package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -133
- package/src/components/Global/GlobalNotice/index.vue +79 -100
- package/src/components/Global/SocialShare/index.vue +1 -1
- package/src/components/Global/Strip/index.vue +1 -1
- package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +8 -4
- package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
- package/src/components/Paragraphs/Accordion/index.stories.js +21 -18
- package/src/components/Paragraphs/Accordion/index.vue +52 -48
- package/src/components/Paragraphs/BrowseContent/index.vue +1 -1
- package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
- package/src/components/Paragraphs/Chart/Constants.js +485 -485
- package/src/components/Paragraphs/Chart/index.vue +232 -241
- package/src/components/Paragraphs/Directory/Records/HSCP/index.stories.js +33 -0
- package/src/components/Paragraphs/Directory/Records/HSCP/index.vue +334 -0
- package/src/components/Paragraphs/Directory/Records/index.vue +63 -27
- package/src/components/Paragraphs/Directory/Records/styles.scss +1 -0
- package/src/components/Paragraphs/Directory/constants.js +23 -5
- package/src/components/Paragraphs/Directory/index.vue +14 -14
- package/src/components/Paragraphs/ListGroup/index.vue +5 -1
- package/src/components/Paragraphs/ScrollSpy/index.vue +23 -14
- package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
- package/src/components/Paragraphs/TabbedCards/index.vue +13 -14
- package/src/components/Paragraphs/Tabs/index.vue +19 -17
- package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
- package/src/components/Paragraphs/TextMedia/index.vue +20 -16
- package/src/components/Paragraphs/VideoGrid/index.stories.js +43 -19
- package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
- package/src/components/Paragraphs/Webform/index.stories.js +82 -69
- package/src/components/SubComponents/CardGroup/index.vue +5 -1
- package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
- package/src/components/SubComponents/FormInstance/components/handler/index.vue +25 -29
- package/src/components/SubComponents/FormInstance/components/renderer/index.vue +63 -28
- package/src/components/SubComponents/FormInstance/models/overrides/file.js +33 -40
- package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +22 -15
- package/src/components/SubComponents/FormInstance/services/registry-factory.js +1 -1
- package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
- package/src/components/SubComponents/FormInstance/style.scss +2 -2
- package/src/components/SubComponents/FormInstance/tests/address.test.js +4 -4
- package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +7 -7
- package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +15 -15
- package/src/components/SubComponents/FormInstance/tests/date.test.js +8 -8
- package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +9 -9
- package/src/components/SubComponents/FormInstance/tests/multiple.test.js +13 -13
- package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +120 -120
- package/src/components/SubComponents/FormInstance/tests/scale.test.js +6 -6
- package/src/components/SubComponents/FormInstance/tests/url.test.js +13 -10
- package/src/components/SubComponents/Pagination/index.vue +19 -18
- package/src/components/SubComponents/ResourceGroup/index.vue +5 -1
- package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
- package/src/components/SubComponents/Search/index.vue +35 -33
- package/src/components/SubComponents/VideoThumbnail/index.vue +48 -133
- package/src/includes/scss/vars/src/colors.module.scss +28 -1
- package/src/index.js +21 -3
- package/src/main.js +2 -10
- package/src/mock/carousel-items.js +71 -46
package/.storybook/preview.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** @type { import('@storybook/vue3').Preview } */
|
|
2
2
|
import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'
|
|
3
|
-
import 'bootstrap/dist/css/bootstrap.min.css'
|
|
4
|
-
import './../src/assets/styles/stylesheet.scss'
|
|
5
3
|
import { setup } from '@storybook/vue3'
|
|
6
4
|
|
|
5
|
+
import { createBootstrap } from 'bootstrap-vue-next'
|
|
6
|
+
|
|
7
|
+
// Add the necessary CSS
|
|
8
|
+
import 'bootstrap/dist/css/bootstrap.css'
|
|
9
|
+
import 'bootstrap-vue-next/dist/bootstrap-vue-next.css'
|
|
10
|
+
|
|
7
11
|
//Custom fonts
|
|
8
12
|
import './../src/assets/styles/webfonts.css'
|
|
9
13
|
|
|
@@ -12,38 +16,41 @@ import './../src/assets/styles/stylesheet.scss'
|
|
|
12
16
|
|
|
13
17
|
// Storybook css
|
|
14
18
|
import './../src/assets/styles/storybook.scss'
|
|
15
|
-
|
|
19
|
+
import 'bootstrap/dist/css/bootstrap.min.css'
|
|
20
|
+
import './../src/assets/styles/stylesheet.scss'
|
|
16
21
|
|
|
17
22
|
setup((app) => {
|
|
18
23
|
app.component('NuxtLink', {
|
|
19
24
|
props: {
|
|
20
25
|
to: {
|
|
21
26
|
type: String,
|
|
22
|
-
required: true
|
|
23
|
-
}
|
|
27
|
+
required: true,
|
|
28
|
+
},
|
|
24
29
|
},
|
|
25
|
-
template:
|
|
30
|
+
template:
|
|
31
|
+
'<a target="_blank" :href="`https://ws-ui.wsvdigital.com.au${this.to}`"><slot></slot></a>',
|
|
26
32
|
})
|
|
33
|
+
app.use(createBootstrap())
|
|
27
34
|
})
|
|
28
35
|
|
|
29
36
|
const preview = {
|
|
30
37
|
parameters: {
|
|
31
38
|
options: {
|
|
32
39
|
storySort: {
|
|
33
|
-
method: 'alphabetical'
|
|
34
|
-
}
|
|
40
|
+
method: 'alphabetical',
|
|
41
|
+
},
|
|
35
42
|
},
|
|
36
43
|
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
37
44
|
controls: {
|
|
38
45
|
matchers: {
|
|
39
46
|
color: /(background|color)$/i,
|
|
40
|
-
date: /Date$/i
|
|
41
|
-
}
|
|
47
|
+
date: /Date$/i,
|
|
48
|
+
},
|
|
42
49
|
},
|
|
43
50
|
viewport: {
|
|
44
|
-
viewports: INITIAL_VIEWPORTS
|
|
45
|
-
}
|
|
46
|
-
}
|
|
51
|
+
viewports: INITIAL_VIEWPORTS,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
export default preview
|
package/bin/deploy.sh
CHANGED
package/lib/utility.js
CHANGED
|
@@ -34,23 +34,25 @@ function isGovSite(url) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function navigateToPath(path, newTab) {
|
|
37
|
+
function navigateToPath(path, newTab, nuxtRouter) {
|
|
38
38
|
const url = String(path).startsWith('www.') ? `http://${path}` : path
|
|
39
39
|
const isAbsolute = isAbsoluteUrl(url)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
const router = nuxtRouter ? nuxtRouter : this.$router
|
|
41
|
+
if (!isAbsolute && router && !newTab) {
|
|
42
|
+
router.push({
|
|
43
|
+
path: url,
|
|
43
44
|
})
|
|
44
|
-
} else if (!isAbsolute &&
|
|
45
|
+
} else if (!isAbsolute && router && newTab) {
|
|
45
46
|
const hrefTag = Object.assign(document.createElement('a'), {
|
|
46
47
|
target: '_blank',
|
|
47
|
-
href: url
|
|
48
|
+
href: url,
|
|
48
49
|
})
|
|
49
50
|
hrefTag.click()
|
|
50
51
|
} else {
|
|
51
52
|
const hrefTag = Object.assign(document.createElement('a'), {
|
|
52
|
-
target: newTab ? '_blank' : '_self',
|
|
53
|
-
|
|
53
|
+
// target: newTab ? '_blank' : '_self',
|
|
54
|
+
target: '_blank',
|
|
55
|
+
href: url,
|
|
54
56
|
})
|
|
55
57
|
hrefTag.click()
|
|
56
58
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@worksafevictoria/wcl7.5",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -43,8 +43,7 @@
|
|
|
43
43
|
"@storybook/cli": "^7.6.20",
|
|
44
44
|
"axios": "^1.6.0",
|
|
45
45
|
"bootstrap": "^5.3.2",
|
|
46
|
-
"bootstrap-vue": "^
|
|
47
|
-
"bootstrap-vue-next": "^0.25.10",
|
|
46
|
+
"bootstrap-vue-next": "^0.26.18",
|
|
48
47
|
"date-fns": "^2.30.0",
|
|
49
48
|
"formiojs": "4.13.13",
|
|
50
49
|
"storybook-addon-deep-controls": "^0.6.2",
|
|
@@ -98,5 +97,6 @@
|
|
|
98
97
|
"vite-svg-loader": "^5.1.0",
|
|
99
98
|
"vitest": "^0.34.6",
|
|
100
99
|
"vue-jest": "^3.0.7"
|
|
101
|
-
}
|
|
100
|
+
},
|
|
101
|
+
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
|
|
102
102
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_1024_13)">
|
|
3
|
+
<path d="M11.8946 8.04107L18.8121 0H17.1729L11.1664 6.98195L6.36901 0H0.835815L8.09038 10.5579L0.835815 18.9902H2.47514L8.81815 11.6171L13.8845 18.9902H19.4177L11.8942 8.04107H11.8946ZM9.64929 10.651L8.91425 9.59963L3.06581 1.23406H5.58372L10.3035 7.98534L11.0385 9.03668L17.1736 17.8123H14.6557L9.64929 10.6514V10.651Z" fill="black"/>
|
|
4
|
+
</g>
|
|
5
|
+
<defs>
|
|
6
|
+
<clipPath id="clip0_1024_13">
|
|
7
|
+
<rect width="18.5819" height="19" fill="white" transform="translate(0.835815)"/>
|
|
8
|
+
</clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 18.58 19">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.cls-1 {
|
|
6
|
+
fill: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.cls-2 {
|
|
10
|
+
fill: #356041;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cls-3 {
|
|
14
|
+
clip-path: url(#clippath);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
<clipPath id="clippath">
|
|
18
|
+
<rect class="cls-1" width="18.58" height="19"/>
|
|
19
|
+
</clipPath>
|
|
20
|
+
</defs>
|
|
21
|
+
<g id="Layer_2-2" data-name="Layer_2">
|
|
22
|
+
<g id="Layer_1-2">
|
|
23
|
+
<g class="cls-3">
|
|
24
|
+
<path class="cls-2" d="M11.06,8.04L17.98,0h-1.64l-6.01,6.98L5.53,0H0l7.25,10.56L0,18.99h1.64l6.34-7.37,5.07,7.37h5.53l-7.52-10.95h0ZM8.81,10.65l-.74-1.05L2.23,1.23h2.52l4.72,6.75.73,1.05,6.14,8.78h-2.52l-5.01-7.16h0Z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
</svg>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 18.58 19">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.cls-1 {
|
|
6
|
+
fill: #fff;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.cls-2 {
|
|
10
|
+
fill: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cls-3 {
|
|
14
|
+
clip-path: url(#clippath);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
<clipPath id="clippath">
|
|
18
|
+
<rect class="cls-2" width="18.58" height="19"/>
|
|
19
|
+
</clipPath>
|
|
20
|
+
</defs>
|
|
21
|
+
<g id="Layer_2-2" data-name="Layer_2">
|
|
22
|
+
<g id="Layer_1-2">
|
|
23
|
+
<g class="cls-3">
|
|
24
|
+
<path class="cls-1" d="M11.06,8.04L17.98,0h-1.64l-6.01,6.98L5.53,0H0l7.25,10.56L0,18.99h1.64l6.34-7.37,5.07,7.37h5.53l-7.52-10.95h0ZM8.81,10.65l-.74-1.05L2.23,1.23h2.52l4.72,6.75.73,1.05,6.14,8.78h-2.52l-5.01-7.16h0Z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
</svg>
|
|
@@ -10,3 +10,54 @@
|
|
|
10
10
|
border: none !important;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
.modal-dialog {
|
|
15
|
+
.modal-content {
|
|
16
|
+
.modal-body {
|
|
17
|
+
.section-group__block {
|
|
18
|
+
max-width: 100%;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
border-radius: 8px;
|
|
22
|
+
}
|
|
23
|
+
.modal-body {
|
|
24
|
+
padding: 32px;
|
|
25
|
+
fieldset {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: row;
|
|
28
|
+
flex-wrap: wrap;
|
|
29
|
+
legend {
|
|
30
|
+
font-size: 28px;
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
line-height: 32px;
|
|
33
|
+
letter-spacing: 0px;
|
|
34
|
+
margin-bottom: 32px;
|
|
35
|
+
}
|
|
36
|
+
.option {
|
|
37
|
+
margin-bottom: 32px;
|
|
38
|
+
flex-basis: 50%;
|
|
39
|
+
display: flex;
|
|
40
|
+
@media screen and (max-width: 600px) {
|
|
41
|
+
flex-basis: 100%;
|
|
42
|
+
}
|
|
43
|
+
input[type='checkbox'] {
|
|
44
|
+
height: 24px;
|
|
45
|
+
border: 1px solid #bababa;
|
|
46
|
+
width: 24px;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
}
|
|
49
|
+
label {
|
|
50
|
+
margin: 0px;
|
|
51
|
+
width: 80%;
|
|
52
|
+
position: relative;
|
|
53
|
+
left: 16px;
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
.modal-footer,
|
|
60
|
+
.modal-header {
|
|
61
|
+
border: none;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
:title-tag="titleTag"
|
|
12
12
|
class="card-grid"
|
|
13
13
|
:content-class="contentClass"
|
|
14
|
-
:class="{
|
|
15
|
-
|
|
16
|
-
}"
|
|
14
|
+
:class="`cardGrid-${gridId}`"
|
|
15
|
+
:card-browse-content="cardBrowseContent"
|
|
17
16
|
>
|
|
18
17
|
<template v-if="$slots.gridHeaderRight" v-slot:headerRight>
|
|
19
18
|
<slot name="gridHeaderRight"></slot>
|
|
@@ -26,12 +25,12 @@
|
|
|
26
25
|
ref="cardRow"
|
|
27
26
|
:class="{
|
|
28
27
|
['card-grid__row--' + rowSpacing]: true,
|
|
29
|
-
['card-grid__row--' + rowClasses]: true
|
|
28
|
+
['card-grid__row--' + rowClasses]: true,
|
|
30
29
|
}"
|
|
31
30
|
>
|
|
32
31
|
<column
|
|
33
32
|
v-for="(item, index) in cards"
|
|
34
|
-
:key="`${redrawCounter}-${index}-${
|
|
33
|
+
:key="`${redrawCounter}-${index}-${gridId}`"
|
|
35
34
|
ref="cardColumns"
|
|
36
35
|
:lg="largeViewPort"
|
|
37
36
|
:md="mediumViewPort"
|
|
@@ -39,7 +38,7 @@
|
|
|
39
38
|
cols="12"
|
|
40
39
|
class="card-grid__column"
|
|
41
40
|
:class="{
|
|
42
|
-
['card-grid__column--' + columnSpacing]: true
|
|
41
|
+
['card-grid__column--' + columnSpacing]: true,
|
|
43
42
|
}"
|
|
44
43
|
>
|
|
45
44
|
<slot name="cardItem" :card="item" :index="index"></slot>
|
|
@@ -56,8 +55,7 @@
|
|
|
56
55
|
import Row from './../../Containers/Row/index.vue'
|
|
57
56
|
import Column from './../../Containers/Column/index.vue'
|
|
58
57
|
import SectionGroup from './../../Containers/SectionGroup/index.vue'
|
|
59
|
-
import debounce from 'lodash
|
|
60
|
-
|
|
58
|
+
import { debounce } from 'lodash-es'
|
|
61
59
|
|
|
62
60
|
export default {
|
|
63
61
|
name: 'CardGrid',
|
|
@@ -65,52 +63,52 @@ export default {
|
|
|
65
63
|
props: {
|
|
66
64
|
title: {
|
|
67
65
|
type: String,
|
|
68
|
-
default: null
|
|
66
|
+
default: null,
|
|
69
67
|
},
|
|
70
68
|
subHeading: {
|
|
71
69
|
type: String,
|
|
72
|
-
default: null
|
|
70
|
+
default: null,
|
|
73
71
|
},
|
|
74
72
|
titleTag: {
|
|
75
73
|
type: String,
|
|
76
|
-
default: 'h2'
|
|
74
|
+
default: 'h2',
|
|
77
75
|
},
|
|
78
76
|
cards: {
|
|
79
77
|
type: Array,
|
|
80
|
-
default: () => []
|
|
78
|
+
default: () => [],
|
|
81
79
|
},
|
|
82
80
|
rtl: {
|
|
83
81
|
type: Boolean,
|
|
84
|
-
default: false
|
|
82
|
+
default: false,
|
|
85
83
|
},
|
|
86
84
|
columnsPerRow: {
|
|
87
85
|
type: Number,
|
|
88
|
-
default: 3
|
|
86
|
+
default: 3,
|
|
89
87
|
},
|
|
90
88
|
forceLgColumnsPerRow: {
|
|
91
89
|
type: Number,
|
|
92
|
-
default: undefined
|
|
90
|
+
default: undefined,
|
|
93
91
|
},
|
|
94
92
|
forceMdColumnsPerRow: {
|
|
95
93
|
type: Number,
|
|
96
|
-
default: undefined
|
|
94
|
+
default: undefined,
|
|
97
95
|
},
|
|
98
96
|
forceSmColumnsPerRow: {
|
|
99
97
|
type: Number,
|
|
100
|
-
default: undefined
|
|
98
|
+
default: undefined,
|
|
101
99
|
},
|
|
102
100
|
size: {
|
|
103
101
|
type: String,
|
|
104
102
|
default: 'page',
|
|
105
103
|
validator: (value) =>
|
|
106
|
-
['half-content', 'content', 'page', 'full'].indexOf(value) >= 0
|
|
104
|
+
['half-content', 'content', 'page', 'full'].indexOf(value) >= 0,
|
|
107
105
|
},
|
|
108
106
|
isSelectable: {
|
|
109
|
-
type: Boolean
|
|
107
|
+
type: Boolean,
|
|
110
108
|
},
|
|
111
109
|
cardIdPrefix: {
|
|
112
110
|
type: String,
|
|
113
|
-
default: null
|
|
111
|
+
default: null,
|
|
114
112
|
},
|
|
115
113
|
backgroundVariant: {
|
|
116
114
|
type: String,
|
|
@@ -123,45 +121,53 @@ export default {
|
|
|
123
121
|
'grey',
|
|
124
122
|
'yellow',
|
|
125
123
|
'white',
|
|
126
|
-
'lightblue'
|
|
127
|
-
].indexOf(value) >= 0
|
|
124
|
+
'lightblue',
|
|
125
|
+
].indexOf(value) >= 0,
|
|
128
126
|
},
|
|
129
127
|
applyBackgroundOn: {
|
|
130
128
|
type: String,
|
|
131
129
|
default: 'section',
|
|
132
130
|
validator: (value) =>
|
|
133
|
-
['content', 'block', 'container', 'section'].indexOf(value) >= 0
|
|
131
|
+
['content', 'block', 'container', 'section'].indexOf(value) >= 0,
|
|
134
132
|
},
|
|
135
133
|
noPaddingTop: {
|
|
136
|
-
type: Boolean
|
|
134
|
+
type: Boolean,
|
|
137
135
|
},
|
|
138
136
|
noPaddingBottom: {
|
|
139
|
-
type: Boolean
|
|
137
|
+
type: Boolean,
|
|
140
138
|
},
|
|
141
139
|
rowSpacing: {
|
|
142
140
|
type: String,
|
|
143
141
|
default: 'large',
|
|
144
|
-
validator: (value) => ['none', 'small', 'large'].indexOf(value) >= 0
|
|
142
|
+
validator: (value) => ['none', 'small', 'large'].indexOf(value) >= 0,
|
|
145
143
|
},
|
|
146
144
|
rowClasses: {
|
|
147
145
|
type: String,
|
|
148
|
-
default: null
|
|
146
|
+
default: null,
|
|
149
147
|
},
|
|
150
148
|
columnSpacing: {
|
|
151
149
|
type: String,
|
|
152
150
|
default: 'default',
|
|
153
|
-
validator: (value) => ['default', 'none'].indexOf(value) >= 0
|
|
151
|
+
validator: (value) => ['default', 'none'].indexOf(value) >= 0,
|
|
154
152
|
},
|
|
155
153
|
contentClass: {
|
|
156
154
|
type: String,
|
|
157
|
-
default: ''
|
|
158
|
-
}
|
|
155
|
+
default: '',
|
|
156
|
+
},
|
|
157
|
+
cardBrowseContent: {
|
|
158
|
+
type: Boolean,
|
|
159
|
+
default: false,
|
|
160
|
+
},
|
|
161
|
+
gridId: {
|
|
162
|
+
type: String,
|
|
163
|
+
default: 'default',
|
|
164
|
+
},
|
|
159
165
|
},
|
|
160
166
|
data() {
|
|
161
167
|
return {
|
|
162
168
|
childCards: [],
|
|
163
169
|
redrawCounter: 0,
|
|
164
|
-
setColumnSizeDebounce: debounce(this.setColumnSize, 500)
|
|
170
|
+
setColumnSizeDebounce: debounce(this.setColumnSize, 500),
|
|
165
171
|
}
|
|
166
172
|
},
|
|
167
173
|
computed: {
|
|
@@ -188,38 +194,35 @@ export default {
|
|
|
188
194
|
}
|
|
189
195
|
return 6
|
|
190
196
|
},
|
|
191
|
-
uniqueClass() {
|
|
192
|
-
return `cardGrid-${this.$options._uid}`
|
|
193
|
-
}
|
|
194
197
|
},
|
|
195
198
|
watch: {
|
|
196
199
|
cards: {
|
|
197
|
-
handler: function() {
|
|
200
|
+
handler: function () {
|
|
198
201
|
this.redrawCounter += 1
|
|
199
202
|
this.setColumnSizeDebounce()
|
|
200
203
|
},
|
|
201
|
-
deep: true
|
|
204
|
+
deep: true,
|
|
202
205
|
},
|
|
203
206
|
columnsPerRow: {
|
|
204
|
-
handler: function() {
|
|
207
|
+
handler: function () {
|
|
205
208
|
this.setColumnSizeDebounce()
|
|
206
|
-
}
|
|
209
|
+
},
|
|
207
210
|
},
|
|
208
211
|
forceSmColumnsPerRow: {
|
|
209
|
-
handler: function() {
|
|
212
|
+
handler: function () {
|
|
210
213
|
this.setColumnSizeDebounce()
|
|
211
|
-
}
|
|
214
|
+
},
|
|
212
215
|
},
|
|
213
216
|
forceMdColumnsPerRow: {
|
|
214
|
-
handler: function() {
|
|
217
|
+
handler: function () {
|
|
215
218
|
this.setColumnSizeDebounce()
|
|
216
|
-
}
|
|
219
|
+
},
|
|
217
220
|
},
|
|
218
221
|
forceLgColumnsPerRow: {
|
|
219
|
-
handler: function() {
|
|
222
|
+
handler: function () {
|
|
220
223
|
this.setColumnSizeDebounce()
|
|
221
|
-
}
|
|
222
|
-
}
|
|
224
|
+
},
|
|
225
|
+
},
|
|
223
226
|
},
|
|
224
227
|
mounted() {
|
|
225
228
|
window.addEventListener('resize', this.setColumnSizeDebounce)
|
|
@@ -239,7 +242,7 @@ export default {
|
|
|
239
242
|
? this.cards[selectedCardModelIndex]
|
|
240
243
|
: null,
|
|
241
244
|
selectedCardModelIndex,
|
|
242
|
-
ev
|
|
245
|
+
ev,
|
|
243
246
|
})
|
|
244
247
|
},
|
|
245
248
|
cardSelected(selectedCard, ev) {
|
|
@@ -249,10 +252,12 @@ export default {
|
|
|
249
252
|
|
|
250
253
|
this.$emit('selected', {
|
|
251
254
|
selectedCard: selectedCard.selected
|
|
252
|
-
? this.
|
|
255
|
+
? this.cardBrowseContent
|
|
256
|
+
? this.childCards[selectedCardModelIndex]
|
|
257
|
+
: this.cards[selectedCardModelIndex]
|
|
253
258
|
: null,
|
|
254
259
|
selectedCardModelIndex,
|
|
255
|
-
ev
|
|
260
|
+
ev,
|
|
256
261
|
})
|
|
257
262
|
},
|
|
258
263
|
clearCards(selectedCard) {
|
|
@@ -292,15 +297,15 @@ export default {
|
|
|
292
297
|
this.$emit('isMobileOrTabletView', isMobileView || isTabletView)
|
|
293
298
|
this.$emit('gridColumnSize', gridColumnSize)
|
|
294
299
|
this.childCards.forEach((card) =>
|
|
295
|
-
card.setGridMetaData(gridColumnSize, isMobileView, isTabletView)
|
|
300
|
+
card.setGridMetaData(gridColumnSize, isMobileView, isTabletView),
|
|
296
301
|
)
|
|
297
302
|
}
|
|
298
303
|
})
|
|
299
304
|
},
|
|
300
305
|
handleFocus(ev) {
|
|
301
306
|
this.$emit('focussed', ev)
|
|
302
|
-
}
|
|
303
|
-
}
|
|
307
|
+
},
|
|
308
|
+
},
|
|
304
309
|
}
|
|
305
310
|
</script>
|
|
306
311
|
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
</template>
|
|
24
24
|
|
|
25
25
|
<script>
|
|
26
|
+
import { getCurrentInstance } from 'vue'
|
|
26
27
|
import Icon from './../../SubComponents/Icon/index.vue'
|
|
27
28
|
import ChevUp from './../../../assets/icons/chev-up.svg?raw'
|
|
28
29
|
import CaretUp from './../../../assets/icons/caret-up.svg?url'
|
|
@@ -71,11 +72,13 @@ export default {
|
|
|
71
72
|
},
|
|
72
73
|
//Identify if this is a tabbed card WSV2-374
|
|
73
74
|
isTabbedCard() {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const instance = getCurrentInstance();
|
|
76
|
+
const parentEl = instance?.parent?.proxy?.$el.parentNode;
|
|
77
|
+
|
|
78
|
+
if (parentEl && parentEl.classList.contains('tabbed-card')) {
|
|
79
|
+
return true;
|
|
77
80
|
} else {
|
|
78
|
-
return false
|
|
81
|
+
return false;
|
|
79
82
|
}
|
|
80
83
|
},
|
|
81
84
|
//If isTabbedCard, then supportive text must be displayed for up and down carets. WSV2-374
|