@worksafevictoria/wcl7.5 1.1.0-beta.73 → 1.1.0-beta.74

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.
@@ -9,77 +9,78 @@
9
9
  <span>{{ data.name }}</span>
10
10
  <span v-if="numberOfItems > 0">({{ numberOfItems }})</span>
11
11
  </filter-button>
12
- <div v-if="showMyModal" class="modal fade show wcl-directory-filters__single-tax__modal"
13
- tabindex="-1" aria-labelledby="exampleModalLabel" aria-modal="true" role="dialog"
14
- style="display: block;">
15
- <div class="modal-dialog modal-xl modal-dialog-scrollable modal-dialog-centered">
16
- <div class="modal-content">
17
- <div class="modal-body">
18
- <fieldset>
19
- <legend>Filter by {{ data.name }}</legend>
20
- <div v-for="term in data.terms" :key="term.tid" class="option">
21
- <input
22
- :id="`term_${term.tid}`"
23
- v-model="selectedFilters[`${data.record_id}`]"
24
- type="checkbox"
25
- :name="term.name"
26
- :value="term"
27
- :disabled="term.preselected"
28
- @keyup.enter="(e) => e.target.click()"
29
- />
30
- <label :for="`term_${term.tid}`">{{ term.name }}</label>
31
- </div>
32
- </fieldset>
33
- </div>
34
- <div class="modal-footer">
35
- <cta-button
36
- v-if="!loading && results !== 0"
37
- :type="'dark'"
38
- :rtl="false"
39
- :focus-outline="'light'"
40
- :workwell="false"
41
- @clicked="showMyModal = !showMyModal"
42
- >Show <span>{{ results }}</span> {{ resultString }}
43
- </cta-button>
44
- <strong v-else><span v-show="!loading">No results found</span></strong>
45
- </div>
12
+ <b-modal v-model="showMyModal" size="xl" centered no-header scrollable>
13
+ <template #default>
14
+ <fieldset>
15
+ <legend>Filter by {{ data.name }}</legend>
16
+ <div v-for="term in data.terms" :key="term.tid" class="option">
17
+ <input
18
+ :id="`term_${term.tid}`"
19
+ v-model="selectedFilters[`${data.record_id}`]"
20
+ type="checkbox"
21
+ :name="term.name"
22
+ :value="term"
23
+ :disabled="term.preselected"
24
+ @keyup.enter="(e) => e.target.click()"
25
+ />
26
+ <label :for="`term_${term.tid}`">{{ term.name }}</label>
27
+ </div>
28
+ </fieldset>
29
+ </template>
30
+ <template #footer="{ close }">
31
+ <div>
32
+ <cta-button
33
+ v-if="!loading && results !== 0"
34
+ :type="'dark'"
35
+ :rtl="false"
36
+ :focus-outline="'light'"
37
+ :workwell="false"
38
+ @clicked="close"
39
+ >Show <span>{{ results }}</span> {{ resultString }}
40
+ </cta-button>
41
+ <strong v-else
42
+ ><span v-show="!loading">No results found</span></strong
43
+ >
46
44
  </div>
47
- </div>
48
- </div>
45
+ </template>
46
+ </b-modal>
49
47
  </div>
50
48
  </template>
51
49
  <script>
52
50
  import CtaButton from '../../../SubComponents/CtaButton/index.vue'
53
51
  import FilterButton from '../../../Common/FilterButton/index.vue'
52
+ import { BModal, BButton } from 'bootstrap-vue-next'
54
53
 
55
54
  export default {
56
55
  components: {
57
56
  CtaButton,
58
- FilterButton
57
+ FilterButton,
58
+ 'b-modal': BModal,
59
+ 'b-button': BButton,
59
60
  },
60
61
  props: {
61
62
  data: {
62
63
  type: Object,
63
- required: true
64
+ required: true,
64
65
  },
65
66
  results: {
66
67
  type: Number,
67
- required: true
68
+ required: true,
68
69
  },
69
70
  loading: {
70
71
  type: Boolean,
71
- required: false
72
- }
72
+ required: false,
73
+ },
73
74
  },
74
75
  data() {
75
76
  return {
76
77
  selectedFilters: {
77
78
  [this.data.record_id]: this.data.terms.filter(
78
- (term) => term.preselected
79
- )
79
+ (term) => term.preselected,
80
+ ),
80
81
  },
81
82
  hasReset: false,
82
- showMyModal: false
83
+ showMyModal: false,
83
84
  }
84
85
  },
85
86
  computed: {
@@ -90,7 +91,7 @@ export default {
90
91
  let s = 's'
91
92
  this.results === 1 ? (s = '') : false
92
93
  return 'Result' + s + ' '
93
- }
94
+ },
94
95
  },
95
96
  watch: {
96
97
  selectedFilters: {
@@ -98,8 +99,8 @@ export default {
98
99
  deep: true,
99
100
  handler() {
100
101
  this.emitSelectedValues()
101
- }
102
- }
102
+ },
103
+ },
103
104
  },
104
105
  methods: {
105
106
  emitSelectedValues() {
@@ -113,91 +114,61 @@ export default {
113
114
  this.selectedFilters[this.data.record_id] = this.selectedFilters[
114
115
  this.data.record_id
115
116
  ].filter((item) => item.preselected)
116
- }
117
- }
117
+ },
118
+ },
118
119
  }
119
120
  </script>
120
121
  <style lang="scss">
121
- //
122
- // Global non scoped scss!
123
- // Modal inner overrides only
124
- //
125
- // Component styles add in scoped
126
- // block below
127
- //
128
- .wcl-directory-filters__single-tax {
129
- // !!keep empty!! //
130
- &__caret {
131
- padding-left: 8px;
132
- }
133
-
134
- .modal {
135
- background: rgba(0,0,0,0.5);
136
- }
137
- .modal-backdrop {
138
- display: none;
139
- }
140
-
141
- &__modal {
142
- .modal-content {
143
- border-radius: 8px;
144
- }
145
-
146
- .modal-xl {
147
- max-width: 920px;
148
- }
149
-
150
- .modal-header {
151
- position: absolute;
152
- width: 100%;
153
- left: 0;
154
- right: 0;
155
- padding: 32px;
156
- border: none;
157
- .close {
158
- z-index: 1;
122
+ // Putting all modal styling in one place
123
+ // Not working from modal.scss
124
+ .modal-dialog {
125
+ .modal-content {
126
+ .modal-body {
127
+ .section-group__block {
128
+ max-width: 100%;
159
129
  }
160
130
  }
161
- .modal-body {
162
- padding: 0px 32px 0px;
163
- margin-top: 16px;
164
- fieldset {
131
+ border-radius: 8px;
132
+ }
133
+ .modal-body {
134
+ padding: 32px;
135
+ fieldset {
136
+ display: flex;
137
+ flex-direction: row;
138
+ flex-wrap: wrap;
139
+ legend {
140
+ font-size: 28px;
141
+ font-weight: 700;
142
+ line-height: 32px;
143
+ letter-spacing: 0px;
144
+ margin-bottom: 32px;
145
+ }
146
+ .option {
147
+ margin-bottom: 32px;
148
+ flex-basis: 50%;
165
149
  display: flex;
166
- flex-direction: row;
167
- flex-wrap: wrap;
168
- legend {
169
- font-size: 28px;
170
- font-weight: 700;
171
- line-height: 32px;
172
- letter-spacing: 0px;
173
- margin-bottom: 32px;
150
+ @media screen and (max-width: 600px) {
151
+ flex-basis: 100%;
174
152
  }
175
- .option {
176
- margin-bottom: 32px;
177
- flex-basis: 50%;
178
- display: flex;
179
- @media screen and (max-width: 600px) {
180
- flex-basis: 100%;
181
- }
182
- input[type='checkbox'] {
183
- height: 24px;
184
- border: 1px solid #bababa;
185
- width: 24px;
186
- cursor: pointer;
187
- }
188
- label {
189
- margin: 0px;
190
- width: 80%;
191
- position: relative;
192
- left: 16px;
193
- cursor: pointer;
194
- }
153
+ input[type='checkbox'] {
154
+ height: 24px;
155
+ border: 1px solid #bababa;
156
+ width: 24px;
157
+ cursor: pointer;
158
+ }
159
+ label {
160
+ margin: 0px;
161
+ width: 80%;
162
+ position: relative;
163
+ left: 16px;
164
+ cursor: pointer;
195
165
  }
196
166
  }
197
167
  }
198
- .modal-footer {
199
- border: none;
200
- }
168
+ }
169
+ .modal-footer,
170
+ .modal-header {
171
+ border: none;
201
172
  }
202
173
  }
203
174
  </style>
@@ -1,68 +1,69 @@
1
1
  <template>
2
- <div
3
- v-if="displayGlobal"
4
- id="global-notice-modal"
5
- ref="globalNoticeModal"
6
- class="modal show"
2
+ <b-modal
3
+ v-model="displayGlobal"
7
4
  aria-labelledby="global-notice-modal"
8
- role="dialog"
9
- tabindex="-1"
10
- aria-modal="true"
11
- style="display: block;">
12
-
13
- <div class="modal-dialog modal-dialog-centered">
14
- <div class="modal-content">
15
- <div class="modal-header">
16
- <button type="button" class="btn-close" @click="setCookie(), displayGlobal = !displayGlobal" aria-label="close"></button>
5
+ no-close-on-backdrop
6
+ centered
7
+ no-footer
8
+ size="md"
9
+ @close="setCookie"
10
+ >
11
+ <template #default="{ close }">
12
+ <div>
13
+ <div class="modal-title">
14
+ Understand changes to the 2023-24 WorkCover premium
17
15
  </div>
18
- <div class="modal-body">
19
- <div class="modal-heading">
20
- Understand changes to the 2023-24 WorkCover premium
21
- </div>
16
+ <div>
17
+ Information for employers on changes to premium rates, how premium is
18
+ calculated and key dates.
19
+ </div>
20
+ <div class="notice-buttons">
22
21
  <div>
23
- Information for employers on changes to premium rates, how premium is
24
- calculated and key dates.
22
+ <button
23
+ id="open_page"
24
+ type="button"
25
+ role="button"
26
+ class="notice-buttons isWiderYellow hasIcon justify-content-start"
27
+ style="order: 1"
28
+ aria-label="Open information about premium changes"
29
+ @click="
30
+ () => {
31
+ goToPage('/2023-24-workcover-premium-changes')
32
+ close()
33
+ }
34
+ "
35
+ >
36
+ 2023-24 premium FAQs
37
+ </button>
25
38
  </div>
26
- <div class="modal-buttons">
27
- <div>
28
- <button
29
- id="open_page"
30
- type="button"
31
- role="button"
32
- class="modal-buttons isWiderYellow hasIcon justify-content-start "
33
- style="order: 1"
34
- aria-label="Open information about premium changes"
35
- @click="setCookie(), goToPage('/2023-24-workcover-premium-changes'), displayGlobal = !displayGlobal"
36
- >
37
- 2023-24 premium FAQs
38
- </button>
39
- </div>
40
- <div>
41
- <button
42
- id="modal_close"
43
- type="button"
44
- role="button"
45
- class="modal-buttons isWiderGray hasIcon justify-content-start "
46
- style="order: 2"
47
- data-bs-dismiss="global-notice-modal"
48
- aria-label="Close modal and go to WorkSafe website"
49
- @click="setCookie(), displayGlobal = !displayGlobal"
50
- >
51
- Continue to WorkSafe
52
- </button>
53
- </div>
39
+ <div>
40
+ <button
41
+ id="modal_close"
42
+ type="button"
43
+ role="button"
44
+ class="notice-buttons isWiderGray hasIcon justify-content-start"
45
+ style="order: 2"
46
+ data-bs-dismiss="global-notice-modal"
47
+ aria-label="Close modal and go to WorkSafe website"
48
+ @click="close"
49
+ >
50
+ Continue to WorkSafe
51
+ </button>
54
52
  </div>
55
53
  </div>
56
- <div style="display: none;" class="modal-footer"></div>
57
54
  </div>
58
- </div>
59
- </div>
55
+ </template>
56
+ </b-modal>
60
57
  </template>
61
58
 
62
59
  <script>
60
+ import { BModal } from 'bootstrap-vue-next'
63
61
 
64
62
  export default {
65
63
  name: 'GlobalNotice',
64
+ components: {
65
+ 'b-modal': BModal,
66
+ },
66
67
  data() {
67
68
  return {
68
69
  currentURL: '',
@@ -73,7 +74,7 @@ export default {
73
74
  showGlobalNotice() {
74
75
  //Check first if SHOW_GLOBAL_NOTICE have been turned on in the environment variable
75
76
  return process.env.SHOW_GLOBAL_NOTICE === false ? false : true
76
- }
77
+ },
77
78
  },
78
79
  mounted() {
79
80
  window.addEventListener('load', this.checkPage())
@@ -83,8 +84,12 @@ export default {
83
84
  localStorage.setItem('globalModalHidden', 'true')
84
85
  },
85
86
  goToPage(link) {
86
- if (process.env.IS_STORYBOOK === 'TRUE') {
87
- alert('Will go to: ' + link + ' and close notice - clear local storage and refresh to redisplay')
87
+ if (process.env.IS_STORYBOOK === 'TRUE') {
88
+ alert(
89
+ 'Will go to: ' +
90
+ link +
91
+ ' and close notice - clear local storage and refresh to redisplay',
92
+ )
88
93
  } else {
89
94
  window.open(link, '_self')
90
95
  }
@@ -95,63 +100,32 @@ export default {
95
100
  this.setCookie()
96
101
  this.displayGlobal = false
97
102
  } else if (typeof window !== 'undefined') {
98
-
99
103
  this.displayGlobal =
100
104
  this.showGlobalNotice === true &&
101
105
  !localStorage.getItem('globalModalHidden')
102
106
  } else {
103
107
  this.displayGlobal = process.env.SHOW_GLOBAL_NOTICE === true
104
108
  }
105
-
106
- }
107
- }
109
+ },
110
+ },
108
111
  }
109
112
  </script>
110
- <style lang="scss">
111
- @import '../../../assets/styles/generated-icons.scss';
112
- @import '../../../includes/scss/all';
113
-
114
- // modal and modal backdrop styles required in order to display the overlay behind the modal
115
- #global-notice-modal {
116
- .modal-dialog-centered {
117
- border-radius: 6px !important;
118
- // box-shadow: 0 0 16px 8px rgba(0, 0, 0, 0.24) !important;
119
- left: 50%;
120
- margin-left: -200px;
121
- margin-top: -370px;
122
- top: 50%;
123
- width: 400px !important;
124
- }
125
- }
126
-
127
- .modal {
128
- background: rgba(0,0,0,0.5)
129
- }
130
-
131
- .modal-backdrop {
132
- display: none;
133
- }
134
-
135
- .modal-header {
136
- border: none;
137
- }
138
-
139
- .modal-heading {
113
+ <style lang="scss" scoped>
114
+ :deep(.modal-title) {
140
115
  font-size: 26px;
141
116
  font-weight: 700;
142
117
  line-height: 30px;
143
118
  letter-spacing: 0px;
144
119
  margin-bottom: 16px;
120
+ display: flex;
121
+ justify-content: flex-end !important;
145
122
  }
123
+ </style>
124
+ <style lang="scss">
125
+ @import '../../../assets/styles/generated-icons.scss';
126
+ @import '../../../includes/scss/all';
146
127
 
147
- .modal-content {
148
- font-weight: 400;
149
- font-size: 16px;
150
- line-height: 24px;
151
- padding: 16px;
152
- }
153
-
154
- .modal-buttons {
128
+ .notice-buttons {
155
129
  position: relative;
156
130
  text-decoration: none;
157
131
  font-style: normal;