@worksafevictoria/wcl7.5 1.8.0-beta.7 → 1.8.0-beta.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worksafevictoria/wcl7.5",
3
- "version": "1.8.0-beta.7",
3
+ "version": "1.8.0-beta.9",
4
4
  "main": "src/index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -0,0 +1,30 @@
1
+ import arRecord from './index.vue'
2
+
3
+ const arData =
4
+ {
5
+ title: 'Ventia Utility Services Pty Limited',
6
+ fullAddress: 'Ventia - Cardinia Building, 25 Lucknow Street MITCHAM VIC 3132',
7
+ workPhone: '0438531164',
8
+ mobilePhone: '0438531164',
9
+ email: 'daniel.dehaan@ventia.com',
10
+ website: 'http://www.ventia.com.au',
11
+ contact1: 'Daniel DeHaan',
12
+ phone1: '0438531164',
13
+ email1: 'daniel.dehaan@ventia.com',
14
+ mobile1: '0438531164',
15
+ serviceCategory: 'Class B - Restricted - Asbestos Removalists',
16
+ services: 'Bituminous coal tar coatings,Non-friable Asbestos Cement Water Pipes and Associated Fittings ONLY,Non-friable Asbetos Containing Bituminous Coating on Mild Steel Pipes',
17
+ }
18
+
19
+
20
+ export default {
21
+ title: 'Paragraphs/Directory/Asbestos/SingleRecord',
22
+ component: arRecord,
23
+ tags: ['autodocs']
24
+ }
25
+
26
+ export const Removalist = {}
27
+
28
+ Removalist.args = {
29
+ item: arData,
30
+ }
@@ -0,0 +1,182 @@
1
+ <template>
2
+ <div class="paragraph--directory__records--dir">
3
+ <!-- Main details -->
4
+ <container>
5
+ <row class="records">
6
+ <column md="2" sm="12" class="title" >
7
+ <a name="titleLink" v-if="item.title" href="javascript:void(0)" :aria-expanded="visible ? 'true' : 'false'" @click="this.visible = !this.visible">
8
+ {{ item.title }}
9
+ </a>
10
+ </column>
11
+ <column md="2" sm="12" class="address" >
12
+ <div class="label">Office address</div>
13
+ <a v-if="item.fullAddress" target="_blank" :href="gMapLink"><span class="sr-only visually-hidden">Address</span>
14
+ {{ item.fullAddress }}
15
+ </a>
16
+ </column>
17
+ <column md="2" sm="12" class="coldata longstring" >
18
+ <div class="label">Email</div>
19
+ <a v-if="item.email" target="_blank" :href="`mailto:${item.email}`"><span class="sr-only visually-hidden">Email address</span>
20
+ {{ item.email }}
21
+ </a>
22
+ </column>
23
+ <column md="3" sm="12" class="coldata longstring" >
24
+ <div class="label">Website</div>
25
+ <a v-if="item.website" target="_blank" :href="`${item.website}`"><span class="sr-only visually-hidden">Website address</span>
26
+ {{ item.website }}
27
+ </a>
28
+ </column>
29
+ <column md="2" sm="12" class="coldata" >
30
+ <div class="label">Phone</div>
31
+ <a v-if="item.workPhone || item.mobilePhone" :href="`tel:${item.workPhone || item.mobilePhone}`"><span class="sr-only visually-hidden">Phone number</span>
32
+ {{ item.workPhone || item.mobilePhone }}
33
+ </a>
34
+ </column>
35
+ </row>
36
+ <div class="dir-caret" >
37
+ <a v-if="visible" href="javascript:void(0)" @click="this.visible = false">
38
+ <img
39
+ :src="CaretUp"
40
+ height="12"
41
+ width="17"
42
+ alt="Expand Detail">
43
+ </a>
44
+ <a v-if="!visible" href="javascript:void(0)" @click="this.visible = true">
45
+ <img
46
+ :src="CaretDown"
47
+ height="12"
48
+ width="17"
49
+ alt="Expand Detail">
50
+ </a>
51
+ </div>
52
+ </container>
53
+
54
+ <!-- Additional Content -->
55
+ <container>
56
+ <div v-if="this.visible">
57
+ <div style="padding-top: 20px;">
58
+ <hr>
59
+ </div>
60
+ <!-- Contacts, if any -->
61
+ <div v-if="validContacts">
62
+ <row >
63
+ <column >
64
+ <h4>Contact Information</h4>
65
+ </column>
66
+ </row>
67
+ <row v-if="item.contact1 !== ''">
68
+ <column sm="2" class="label" v-if="item.contact1 !== ''">
69
+ Contact
70
+ </column>
71
+ <column sm="4" class="dir-additional-records" v-if="item.contact1 !== ''">
72
+ {{item.contact1}}
73
+ </column>
74
+ </row>
75
+ <row v-if="item.phone1 !== ''">
76
+ <column sm="2" class="label" v-if="item.phone1 !== ''">
77
+ Phone
78
+ </column>
79
+ <column sm="4" class="dir-additional-records" v-if="item.phone1 !== ''">
80
+ {{item.phone1}}
81
+ </column>
82
+ </row>
83
+ <row v-if="item.mobile1 !== ''">
84
+ <column sm="2" class="label" v-if="item.mobile1 !== ''">
85
+ Mobile
86
+ </column>
87
+ <column sm="4" class="dir-additional-records" v-if="item.mobile1 !== ''">
88
+ {{item.mobile1}}
89
+ </column>
90
+ </row>
91
+ <row v-if="item.email1 !== ''">
92
+ <column sm="2" class="label" v-if="item.email1 !== ''">
93
+ Email
94
+ </column>
95
+ <column sm="4" class="dir-additional-records" v-if="item.email1 !== ''">
96
+ {{item.email1}}
97
+ </column>
98
+ </row>
99
+ </div>
100
+ <div v-if="item.serviceCategory">
101
+ <row class="row-dir-additional">
102
+ <column>
103
+ <h4> {{ item.serviceCategory }}</h4>
104
+ </column>
105
+ </row>
106
+ <row class="dir-additional-records">
107
+ <column >
108
+ <ul>
109
+ <li v-for="(serv) in item.services.split(',')" :key="serv.id">
110
+ {{serv}}
111
+ </li>
112
+ </ul>
113
+ </column>
114
+ </row>
115
+ </div>
116
+ </div>
117
+ </container>
118
+ </div>
119
+ </template>
120
+ <script>
121
+ import Container from '../../../../../Containers/Container/index.vue'
122
+ import Row from '../../../../../Containers/Row/index.vue'
123
+ import Column from '../../../../../Containers/Column/index.vue'
124
+ import CaretUp from './../../../../../../assets/icons/caret-up.svg?url'
125
+ import CaretDown from './../../../../../../assets/icons/caret-down.svg?url'
126
+
127
+ export default {
128
+ components: {
129
+ Container,
130
+ Row,
131
+ Column,
132
+ },
133
+ props: {
134
+ item: {
135
+ type: Object,
136
+ required: true
137
+ },
138
+ },
139
+ data() {
140
+ return {
141
+ visible: false,
142
+ CaretUp,
143
+ CaretDown,
144
+ }
145
+ },
146
+ computed: {
147
+ gMapLink() {
148
+ return `https://google.com/maps?q=${this.item.title}%20${this.item.fullAddress}`
149
+ },
150
+ validContacts() {
151
+ if (this.item.contact1 === '' && this.item.phone1 === '' && this.item.email1 === '' && this.item.mobile1 === '') {
152
+ return false
153
+ } else {
154
+ return true
155
+ }
156
+ }
157
+
158
+ },
159
+ methods: {
160
+ handleClick(title) {
161
+ this.visible = !this.visible
162
+ if (this.$gtm) {
163
+ if (this.visible) {
164
+ this.$gtm.push({ event: 'custom.search.prs.open', title })
165
+ } else {
166
+ this.$gtm.push({
167
+ event: 'custom.search.prs.close',
168
+ title
169
+ })
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+ </script>
176
+
177
+ <style lang="scss" scoped>
178
+
179
+ @import '../../../HSCP/Records/SingleRecord/styles.scss'
180
+
181
+ </style>
182
+
@@ -0,0 +1,19 @@
1
+ import Records from './index.vue'
2
+ import { arData } from '../../../../../mock/asbestos-removalists'
3
+
4
+
5
+ export default {
6
+ title: 'Paragraphs/Directory/Asbestos/Records',
7
+ component: Records,
8
+ tags: ['autodocs'],
9
+ data() {
10
+ return {
11
+ arData
12
+ }
13
+ },
14
+ args: {
15
+ items: arData,
16
+ },
17
+ }
18
+
19
+ export const Removalists = {}
@@ -0,0 +1,254 @@
1
+ <template>
2
+ <section-group class="paragraph--directory dir-filters">
3
+ <!-- Filters -->
4
+ <row style="column-gap: 16px;">
5
+ <!-- Keyword Filters -->
6
+ <column xxl="2" xl="3" md="4" sm="6">
7
+ <label class="visually-hidden" for="search-directory">
8
+ Search by keyword (typed keyword automatically filters below results)
9
+ </label>
10
+ <input type="text" v-model="searchRem" placeholder="Removalist" class="search">
11
+ </column>
12
+ <column xxl="2" xl="3" md="4" sm="6">
13
+ <label class="visually-hidden" for="search-directory">
14
+ Search by suburb (typed suburb automatically filters below results)
15
+ </label>
16
+ <input type="text" v-model="searchSub" placeholder="Address" class="search">
17
+ </column>
18
+ <!-- Other Filters -->
19
+ <column xxl="2" xl="3" md="4" sm="6">
20
+ <select id="filterType" v-model="searchClass" name="filter" class="selectClass">
21
+ <option class="placeholder" value="" disabled hidden selected>Service class</option>
22
+ <option value="Class A Asbestos Removalists">Class A Asbestos Removalists</option>
23
+ <option value="Class B Asbestos Removalists">Class B Asbestos Removalists</option>
24
+ <option value="Class A - Restricted - Asbestos Removalists">Class A - Restricted - Asbestos Removalists</option>
25
+ <option value="Class B - Restricted - Asbestos Removalists">Class B - Restricted - Asbestos Removalists</option>
26
+ </select>
27
+ </column>
28
+ <column xxl="2" xl="3" md="4" sm="6">
29
+ <label class="visually-hidden" for="search-directory">
30
+ Search by suburb (typed suburb automatically filters below results)
31
+ </label>
32
+ <input type="text" v-model="searchServices" placeholder="Services" class="search">
33
+ </column>
34
+ <column md="2">
35
+ <filter-button
36
+ v-if="!hideReset"
37
+ filter-button="!hideReset"
38
+ :is-reset="true"
39
+ class="filterButton__button filterButton__button--reset"
40
+ @clicked="reset"
41
+ />
42
+ </column>
43
+ </row>
44
+ <!-- AR Records -->
45
+ <div class="dirRecords" >
46
+ <template v-for="(item, index) in resultChunks[page]" >
47
+ <ar-record v-if="item.type === 'ar'" :key="index" :item="item"/>
48
+ </template>
49
+ </div>
50
+ <div v-if="filteredRecords.length > 0" align-items="center">
51
+ <pagination
52
+ :total-pages="totalPages"
53
+ :total="totalResults"
54
+ :per-page="perPage"
55
+ :current-page="page + 1"
56
+ @pagechanged="pageChanged($event)"
57
+ />
58
+ </div>
59
+ <h4 v-if="filteredRecords.length === 0">No records found</h4>
60
+
61
+ </section-group>
62
+
63
+ </template>
64
+
65
+ <script>
66
+
67
+ import arRecord from './SingleRecord/index.vue'
68
+ import searchIcon from './../../../../../assets/icons/search.svg?url'
69
+ import SectionGroup from '../../../../Containers/SectionGroup/index.vue'
70
+ import FilterButton from '../../../../Common/FilterButton/index.vue' //Reset
71
+ import Pagination from '../../HSCP/Records/pagination.vue'
72
+
73
+ export default {
74
+ name: 'Asbestos',
75
+ components: {
76
+ arRecord,
77
+ SectionGroup,
78
+ FilterButton,
79
+ Pagination
80
+ },
81
+ data() {
82
+ return {
83
+ searchRem: '',
84
+ searchSub: '',
85
+ searchClass: '',
86
+ searchServices: '',
87
+ filteredItems: null,
88
+ perPage: 10,
89
+ page: 0,
90
+ searchIcon,
91
+ hideReset: true
92
+ }
93
+ },
94
+ props: {
95
+ items: {
96
+ type: Array,
97
+ required: true,
98
+ },
99
+ },
100
+
101
+ computed: {
102
+
103
+ filteredRecords() {
104
+ let results = this.flatRecords
105
+
106
+ if (this.searchRem.length) {
107
+ this.hideReset = false
108
+ results = results.filter(item => item.title.toLowerCase().includes(this.searchRem.toLowerCase()))
109
+ }
110
+ if (this.searchSub.length) {
111
+ this.hideReset = false
112
+ results = results.filter(item => item.fullAddress.toLowerCase().includes(this.searchSub.toLowerCase()))
113
+ }
114
+ if (this.searchClass.length) {
115
+ this.hideReset = false
116
+ results = results.filter(item => item.serviceCategory.toLowerCase().includes(this.searchClass.toLowerCase()))
117
+ }
118
+ if (this.searchServices.length) {
119
+ this.hideReset = false
120
+ results = results.filter(item => item.services.toLowerCase().includes(this.searchServices.toLowerCase()))
121
+ }
122
+ this.filteredItems = results
123
+
124
+ if (this.searchRem.length || this.searchSub.length || this.searchClass.length || this.searchServices.length) {
125
+ this.pageChanged(1)
126
+ }
127
+
128
+ return results
129
+ },
130
+
131
+ flatRecords() {
132
+ let flatRecords = []
133
+ const sortedItems = this.items.sort((a, b) => a.ResourceName.localeCompare(b.ResourceName, 'en', {'sensitivity': 'base'}))
134
+
135
+ sortedItems.forEach((record) => {
136
+ flatRecords.push({
137
+ type: 'ar',
138
+ title: record.ResourceName,
139
+ fullAddress: record.CompanyAddress + ' ' + record.AddressLine2,
140
+ workPhone: record.Phone,
141
+ mobilePhone: record.CompanyMobile,
142
+ email: record.CompanyEmailDisp,
143
+ website: this.formatWebsite(record.CompanyWebURLDisp),
144
+ contact1: record.ContactFirstName + ' ' + record.ContactLastName,
145
+ email1: record.ContactEmail,
146
+ phone1: record.ContactPhoneDisp,
147
+ mobile1: record.ContactMobileDisp,
148
+ services: record.ServicesAll.replace(/,$/, ''),
149
+ serviceCategory: record.ServiceAll
150
+ })
151
+ })
152
+ return flatRecords
153
+ },
154
+ resultChunks() {
155
+ return this.chunkify(this.filteredItems || this.items, this.perPage)
156
+ },
157
+ noRecordsFound() {
158
+ return this.resultChunks[0].length === 0
159
+ },
160
+ totalResults() {
161
+ return Array.isArray(this.filteredItems) ? this.filteredItems.length : 0
162
+ },
163
+ totalPages() {
164
+ return this.resultChunks.length
165
+ },
166
+ pageResultCount() {
167
+ return this.resultChunks[this.page].length
168
+ }
169
+ },
170
+
171
+ methods: {
172
+
173
+ formatWebsite(url) {
174
+ let startUrl = url.slice(0, 3)
175
+ if (startUrl.toLowerCase() === 'www') {
176
+ return 'https://' + url
177
+ } else {
178
+ return url
179
+ }
180
+ },
181
+
182
+ chunkify(arr, n) {
183
+ if (arr) {
184
+ const chunked = arr.reduce(
185
+ (chunk, val) => {
186
+ if (chunk[chunk.length - 1].length === n) chunk.push([])
187
+ chunk[chunk.length - 1].push(val)
188
+ return chunk
189
+ },
190
+ [[]]
191
+ )
192
+ return chunked
193
+ }
194
+ return [[]]
195
+ },
196
+
197
+ reset() {
198
+ this.collapseOrgs('No')
199
+ this.hideReset = true
200
+ this.searchRem = ''
201
+ this.searchClass = ''
202
+ this.searchSub = ''
203
+ this.searchServices = ''
204
+ },
205
+
206
+ pageChanged(ev) {
207
+ this.page = ev - 1
208
+
209
+ if (this.searchRem.length || this.searchSub.length || this.searchClass.length || this.searchServices.length) {
210
+ // don't set focus
211
+ // don't collapseOrgs
212
+ } else {
213
+ // set focus to top element - used instead of scrollTo
214
+ this.collapseOrgs('Yes')
215
+ }
216
+ },
217
+
218
+ collapseOrgs(focusLink) {
219
+ // called by pageChanged and reset. pageChanged called by filter and by pagination links
220
+ const aLinks = document.getElementsByName('titleLink')
221
+ // Convert nodelist to array
222
+ let linksArr = Array.from(aLinks)
223
+ if (Array.isArray(linksArr) && linksArr.length > 0) {
224
+ linksArr
225
+ .filter((link) => link.getAttribute('aria-expanded') === 'true')
226
+ .forEach((link) => link.click())
227
+
228
+ if (focusLink === 'Yes') {
229
+ linksArr[0].focus()
230
+ }
231
+ }
232
+
233
+ },
234
+
235
+ toTitleCase(strVal) {
236
+
237
+ let retVal = strVal.trim()
238
+
239
+ const firstChar = retVal.charAt(0)
240
+ const firstCharU = firstChar.toUpperCase()
241
+ const remChar = retVal.slice(1)
242
+
243
+ retVal = firstCharU + remChar
244
+
245
+ return retVal
246
+ },
247
+ }
248
+ }
249
+ </script>
250
+
251
+ <style lang="scss" scoped>
252
+ @import '../../HSCP/styles.scss'
253
+
254
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="paragraph--directory__records--hscp">
2
+ <div class="paragraph--directory__records--dir">
3
3
  <!-- Main details -->
4
4
  <container>
5
5
  <row class="records">
@@ -33,7 +33,7 @@
33
33
  </a>
34
34
  </column>
35
35
  </row>
36
- <div class="hscp-caret" >
36
+ <div class="dir-caret" >
37
37
  <a v-if="visible" href="javascript:void(0)" @click="this.visible = false">
38
38
  <img
39
39
  :src="CaretUp"
@@ -68,13 +68,13 @@
68
68
  <column sm="2" class="label" v-if="item.contact1 !== ''">
69
69
  Contact
70
70
  </column>
71
- <column sm="4" class="hscp-additional-records" v-if="item.contact1 !== ''">
71
+ <column sm="4" class="dir-additional-records" v-if="item.contact1 !== ''">
72
72
  {{item.contact1}}
73
73
  </column>
74
74
  <column sm="2" class="label" v-if="item.contact2 !== ''">
75
75
  Contact
76
76
  </column>
77
- <column sm="4" class="hscp-additional-records" v-if="item.contact2 !== ''">
77
+ <column sm="4" class="dir-additional-records" v-if="item.contact2 !== ''">
78
78
  {{item.contact2}}
79
79
  </column>
80
80
  </row>
@@ -82,13 +82,13 @@
82
82
  <column sm="2" class="label" v-if="item.phone1 !== ''">
83
83
  Phone
84
84
  </column>
85
- <column sm="4" class="hscp-additional-records" v-if="item.phone1 !== ''">
85
+ <column sm="4" class="dir-additional-records" v-if="item.phone1 !== ''">
86
86
  {{item.phone1}}
87
87
  </column>
88
88
  <column sm="2" class="label" v-if="item.phone2 !== ''">
89
89
  Phone
90
90
  </column>
91
- <column sm="4" class="hscp-additional-records" v-if="item.phone2 !== ''">
91
+ <column sm="4" class="dir-additional-records" v-if="item.phone2 !== ''">
92
92
  {{item.phone2}}
93
93
  </column>
94
94
  </row>
@@ -96,24 +96,24 @@
96
96
  <column sm="2" class="label" v-if="item.email1 !== ''">
97
97
  Email
98
98
  </column>
99
- <column sm="4" class="hscp-additional-records" v-if="item.email1 !== ''">
99
+ <column sm="4" class="dir-additional-records" v-if="item.email1 !== ''">
100
100
  {{item.email1}}
101
101
  </column>
102
102
  <column sm="2" class="label" v-if="item.email2 !== ''">
103
103
  Email
104
104
  </column>
105
- <column sm="4" class="hscp-additional-records" v-if="item.email1 !== ''">
105
+ <column sm="4" class="dir-additional-records" v-if="item.email1 !== ''">
106
106
  {{item.email2}}
107
107
  </column>
108
108
  </row>
109
109
  </div>
110
110
  <div v-if="item.trainingVenues.length">
111
- <row class="row-hscp-additional">
111
+ <row class="row-dir-additional">
112
112
  <column>
113
113
  <h4>Training Venue Locations</h4>
114
114
  </column>
115
115
  </row>
116
- <row class="hscp-additional-records">
116
+ <row class="dir-additional-records">
117
117
  <column >
118
118
  <ul>
119
119
  <li v-for="(venue) in item.trainingVenues.split(',')" :key="venue.id">
@@ -124,12 +124,12 @@
124
124
  </row>
125
125
  </div>
126
126
 
127
- <row class="row-hscp-additional">
127
+ <row class="row-dir-additional">
128
128
  <column>
129
129
  <h4>Training Courses</h4>
130
130
  </column>
131
131
  </row>
132
- <row class="hscp-additional-records">
132
+ <row class="dir-additional-records">
133
133
  <column>
134
134
  <ul>
135
135
  <li v-for="(course) in item.courses.split(',')" :key="course.id">
@@ -201,132 +201,8 @@ export default {
201
201
  </script>
202
202
 
203
203
  <style lang="scss" scoped>
204
- @import '../../../styles.scss';
205
204
 
206
- .row-hscp-additional {
207
- margin-top: 20px;
208
- }
209
-
210
- .hscp-additional-records {
211
- font-size: 16px;
212
- }
213
-
214
- .hscp-caret {
215
- justify-content: end;
216
- align-content: end;
217
- max-width: 20px;
218
- padding-right: 0px;
219
- float:right;
220
- }
221
- .paragraph--directory__records--hscp {
222
-
223
- padding-bottom: 30px !important;
224
-
225
- a {
226
- color: $black;
227
- text-decoration: none;
228
- }
229
- a:hover {
230
- text-decoration: underline;
231
- }
232
- a:focus {
233
- text-decoration: underline;
234
- }
205
+ @import './styles.scss'
235
206
 
236
- .name {
237
- font-size: 1rem;
238
- color: $black;
239
- font-weight: 700;
240
- }
241
- .address {
242
- font-size: 15px;
243
- a {
244
- color: inherit;
245
- text-decoration: none;
246
- }
247
- a:hover {
248
- text-decoration: underline;
249
- }
250
- a:focus {
251
- text-decoration: underline;
252
- }
253
- }
254
- .coldata {
255
- a {
256
- color: inherit;
257
- }
258
- }
259
- .label {
260
- font-size: 16px;
261
- font-weight: bold;
262
- }
263
- .longstring {
264
- word-break: break-all;
265
- }
266
- .search {
267
- color: $black;
268
- border: 1px solid $gray;
269
- border-radius: 8px;
270
- padding: 10px 12px;
271
- height: 42px;
272
- background-repeat: no-repeat;
273
- background-position: 96% 12px;
274
- margin-bottom: 16px;
275
- transition: none;
276
- }
277
- }
278
-
279
- .paragraph--directory.hscp-filters {
280
- .search {
281
- color: $black;
282
- border: 1px solid $gray;
283
- border-radius: 8px;
284
- padding: 10px 12px;
285
- height: 42px;
286
- background-repeat: no-repeat;
287
- background-position: 96% 12px;
288
- margin-bottom: 16px;
289
- transition: none;
290
- }
291
- select {
292
- -moz-appearance: none; /* Firefox */
293
- -webkit-appearance: none; /* Safari and Chrome */
294
- appearance: none;
295
- height: 42px;
296
- border-radius: 8px;
297
- padding: 10px 12px;
298
- width: 100%;
299
- border: 1px solid $gray;
300
- background-image: url('@worksafevictoria/wcl7.5/src/assets/icons/caret-down.svg');
301
- background-position: 95% 50%;
302
- background-repeat: no-repeat;
303
- text-transform: capitalise;
304
- }
305
- .grid-column {
306
- display: inline-block;
307
- width: 25%;
308
-
309
- @media (max-width: 767px) {
310
- width: 50%;
311
- }
312
-
313
- @media (max-width: 539px) {
314
- display: block;
315
- width: 100%;
316
- float: none;
317
- margin-bottom: 16px;
318
- }
319
- }
320
- .right {
321
- float: right;
322
- position: relative;
323
- }
324
-
325
- .records {
326
- padding: 0px;
327
- margin: 0;
328
- }
329
-
330
- }
331
207
  </style>
332
208
 
@@ -0,0 +1,127 @@
1
+ @import '../../../styles.scss';
2
+
3
+ .row-dir-additional {
4
+ margin-top: 20px;
5
+ }
6
+
7
+ .dir-additional-records {
8
+ font-size: 16px;
9
+ }
10
+
11
+ .dir-caret {
12
+ justify-content: end;
13
+ align-content: end;
14
+ max-width: 20px;
15
+ padding-right: 0px;
16
+ float:right;
17
+ }
18
+ .paragraph--directory__records--dir {
19
+
20
+ padding-bottom: 30px !important;
21
+
22
+ a {
23
+ color: $black;
24
+ text-decoration: none;
25
+ }
26
+ a:hover {
27
+ text-decoration: underline;
28
+ }
29
+ a:focus {
30
+ text-decoration: underline;
31
+ }
32
+
33
+ .name {
34
+ font-size: 1rem;
35
+ color: $black;
36
+ font-weight: 700;
37
+ }
38
+ .address {
39
+ font-size: 15px;
40
+ a {
41
+ color: inherit;
42
+ text-decoration: none;
43
+ }
44
+ a:hover {
45
+ text-decoration: underline;
46
+ }
47
+ a:focus {
48
+ text-decoration: underline;
49
+ }
50
+ }
51
+ .coldata {
52
+ a {
53
+ color: inherit;
54
+ }
55
+ }
56
+ .label {
57
+ font-size: 16px;
58
+ font-weight: bold;
59
+ }
60
+ .longstring {
61
+ word-break: break-all;
62
+ }
63
+ .search {
64
+ color: $black;
65
+ border: 1px solid $gray;
66
+ border-radius: 8px;
67
+ padding: 10px 12px;
68
+ height: 42px;
69
+ background-repeat: no-repeat;
70
+ background-position: 96% 12px;
71
+ margin-bottom: 16px;
72
+ transition: none;
73
+ }
74
+ }
75
+
76
+ .paragraph--directory.dir-filters {
77
+ .search {
78
+ color: $black;
79
+ border: 1px solid $gray;
80
+ border-radius: 8px;
81
+ padding: 10px 12px;
82
+ height: 42px;
83
+ background-repeat: no-repeat;
84
+ background-position: 96% 12px;
85
+ margin-bottom: 16px;
86
+ transition: none;
87
+ }
88
+ select {
89
+ -moz-appearance: none; /* Firefox */
90
+ -webkit-appearance: none; /* Safari and Chrome */
91
+ appearance: none;
92
+ height: 42px;
93
+ border-radius: 8px;
94
+ padding: 10px 12px;
95
+ width: 100%;
96
+ border: 1px solid $gray;
97
+ background-image: url('@worksafevictoria/wcl7.5/src/assets/icons/caret-down.svg');
98
+ background-position: 95% 50%;
99
+ background-repeat: no-repeat;
100
+ text-transform: capitalise;
101
+ }
102
+ .grid-column {
103
+ display: inline-block;
104
+ width: 25%;
105
+
106
+ @media (max-width: 767px) {
107
+ width: 50%;
108
+ }
109
+
110
+ @media (max-width: 539px) {
111
+ display: block;
112
+ width: 100%;
113
+ float: none;
114
+ margin-bottom: 16px;
115
+ }
116
+ }
117
+ .right {
118
+ float: right;
119
+ position: relative;
120
+ }
121
+
122
+ .records {
123
+ padding: 0px;
124
+ margin: 0;
125
+ }
126
+
127
+ }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section-group class="paragraph--directory hscp-filters">
2
+ <section-group class="paragraph--directory dir-filters">
3
3
  <!-- Filters -->
4
4
  <row style="column-gap: 16px;">
5
5
  <!-- Keyword Filters -->
@@ -42,7 +42,7 @@
42
42
  </column>
43
43
  </row>
44
44
  <!-- HSCP Records -->
45
- <div class="hscpRecords" >
45
+ <div class="dirRecords" >
46
46
  <template v-for="(item, index) in resultChunks[page]" >
47
47
  <hscp-record v-if="item.type === 'hscp'" :key="index" :item="item"/>
48
48
  </template>
@@ -214,7 +214,7 @@ export default {
214
214
  formatWebsite(url) {
215
215
  let startUrl = url.slice(0, 3)
216
216
  if (startUrl.toLowerCase() === 'www') {
217
- return 'http://' + url
217
+ return 'https://' + url
218
218
  } else {
219
219
  return url
220
220
  }
@@ -290,73 +290,8 @@ export default {
290
290
  </script>
291
291
 
292
292
  <style lang="scss" scoped>
293
- @import '../../styles.scss';
294
- .paragraph--directory.hscp-filters {
295
-
296
- .selectClass {
297
- display:inline-block;
298
- height: 42px;
299
- border-radius: 8px;
300
- padding: 10px 12px;
301
- width: 200px;
302
- border: 1px solid $gray;
303
- margin-right: 16px;
304
- margin-bottom: 16px;
305
-
306
- }
307
-
308
- .search {
309
- display: inline-block;
310
- color: $black;
311
- border: 1px solid $gray;
312
- border-radius: 8px;
313
- padding: 10px 12px;
314
- height: 42px;
315
- background-image: url('./../../../../../assets/icons/search.svg');
316
- background-repeat: no-repeat !important;
317
- background-position: 96% 12px;
318
- margin-bottom: 16px;
319
- margin-right: 16px;
320
- transition: none;
321
- width: 200px;
322
- }
323
-
324
- .grid-column {
325
- display: inline-block;
326
- width: 25%;
327
-
328
- @media (max-width: 767px) {
329
- width: 50%;
330
- }
331
-
332
- @media (max-width: 539px) {
333
- display: block;
334
- width: 100%;
335
- float: none;
336
- margin-bottom: 16px;
337
- }
338
-
339
- }
340
- .right {
341
- float: right;
342
- position: relative;
343
- }
344
-
345
- .records {
346
- padding: 0;
347
- margin: 0;
348
- }
349
- }
350
-
351
- .filterButton__button--reset {
352
- display: inline-block !important;
353
- float: right;
354
- }
355
-
356
- .hscpRecords {
357
- padding-top: 16px;
358
- }
359
293
 
294
+ @import '../styles.scss'
360
295
 
361
296
 
362
297
  </style>
@@ -0,0 +1,68 @@
1
+
2
+ @import '../styles.scss';
3
+
4
+ .paragraph--directory.dir-filters {
5
+
6
+ .selectClass {
7
+ display:inline-block;
8
+ height: 42px;
9
+ border-radius: 8px;
10
+ padding: 10px 12px;
11
+ width: 200px;
12
+ border: 1px solid $gray;
13
+ margin-right: 16px;
14
+ margin-bottom: 16px;
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ .search {
19
+ display: inline-block;
20
+ color: $black;
21
+ border: 1px solid $gray;
22
+ border-radius: 8px;
23
+ padding: 10px 12px;
24
+ height: 42px;
25
+ background-image: url('./../../../../../assets/icons/search.svg');
26
+ background-repeat: no-repeat !important;
27
+ background-position: 96% 12px;
28
+ margin-bottom: 16px;
29
+ margin-right: 16px;
30
+ transition: none;
31
+ width: 200px;
32
+ }
33
+
34
+ .grid-column {
35
+ display: inline-block;
36
+ width: 25%;
37
+
38
+ @media (max-width: 767px) {
39
+ width: 50%;
40
+ }
41
+
42
+ @media (max-width: 539px) {
43
+ display: block;
44
+ width: 100%;
45
+ float: none;
46
+ margin-bottom: 16px;
47
+ }
48
+
49
+ }
50
+ .right {
51
+ float: right;
52
+ position: relative;
53
+ }
54
+
55
+ .records {
56
+ padding: 0;
57
+ margin: 0;
58
+ }
59
+ }
60
+
61
+ .filterButton__button--reset {
62
+ display: inline-block !important;
63
+ float: right;
64
+ }
65
+
66
+ .dirRecords {
67
+ padding-top: 16px;
68
+ }
@@ -30,6 +30,8 @@
30
30
 
31
31
  &--isp,
32
32
  &--hscp,
33
+ &--ar,
34
+ &--dir,
33
35
  &--cj {
34
36
  @include defaultStyle();
35
37
  @include itemStyle();
package/src/index.js CHANGED
@@ -31,6 +31,7 @@ import ListGroup from './components/Paragraphs/ListGroup/index.vue'
31
31
  import ScrollSpy from './components/Paragraphs/ScrollSpy/index.vue'
32
32
  import Directory from './components/Paragraphs/Directory/index.vue'
33
33
  import HscpDirectory from './components/Paragraphs/Directory/HSCP/Records/index.vue'
34
+ import ArDirectory from './components/Paragraphs/Directory/Asbestos/Records/index.vue'
34
35
  import SelectableCards from './components/Paragraphs/SelectableCards/index.vue'
35
36
  import VideoMedia from './components/Paragraphs/VideoPlayer/index.vue'
36
37
  import VideoGrid from './components/Paragraphs/VideoGrid/index.vue'
@@ -99,6 +100,7 @@ export {
99
100
  ScrollSpy,
100
101
  Directory,
101
102
  HscpDirectory,
103
+ ArDirectory,
102
104
  SelectableCards,
103
105
  Statistics,
104
106
  ProofPoints,
@@ -0,0 +1,226 @@
1
+ export const arData = [
2
+ {
3
+ ResourceName: 'A.D.S. Asbestos Removal Pty Ltd',
4
+ CompanyAddress: '62 Webber Parade',
5
+ AddressLine2: 'KEILOR EAST VIC 3033',
6
+ Phone: '0404073745',
7
+ CompanyMobile: '0404 073 745',
8
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
9
+ CompanyWebURLDisp: 'www.adsasbestosremoval.com.au',
10
+ ContactFirstName: 'Ivan',
11
+ ContactLastName: 'Silva',
12
+ ContactPhoneDisp: '0404073745',
13
+ ContactEmail: 'ads.asbestos@gmail.com',
14
+ ContactMobileDisp: '1300 064 277',
15
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
16
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
17
+ },
18
+ {
19
+ ResourceName: 'AAA ASBESTOS SOLUTIONS PTY LTD',
20
+ CompanyAddress: '9 Ewens Court',
21
+ AddressLine2: 'MOUNT GAMBIER VIC 5290',
22
+ Phone: '0418 854 443',
23
+ CompanyMobile: '0418 854 443',
24
+ CompanyEmailDisp: 'nieto4@bigpond.net.au',
25
+ CompanyWebURLDisp: '',
26
+ ContactFirstName: 'ERIC',
27
+ ContactLastName: 'NIETO',
28
+ ContactPhoneDisp: '0418 854 443',
29
+ ContactEmail: 'nieto4@bigpond.net.au',
30
+ ContactMobileDisp: '0418 854 443',
31
+ ServiceAll: 'Class B Asbestos Removalists',
32
+ ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles)',
33
+ },
34
+ {
35
+ ResourceName: 'Aaron John Field',
36
+ CompanyAddress: '44 Townsent Street',
37
+ AddressLine2: 'Howlong NSW 2643',
38
+ Phone: '',
39
+ CompanyMobile: '0408474707',
40
+ CompanyEmailDisp: 'azz_317@homail.com',
41
+ CompanyWebURLDisp: '',
42
+ ContactFirstName: 'Aaron',
43
+ ContactLastName: 'Field',
44
+ ContactPhoneDisp: '',
45
+ ContactEmail: 'azz_317@homail.com',
46
+ ContactMobileDisp: '0408474707',
47
+ ServiceAll: 'Class B Asbestos Removalists',
48
+ ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles),Telecommunication Asbestos cement pits and pipes',
49
+ },
50
+ {
51
+ ResourceName: 'Al Baarini Ahmad',
52
+ CompanyAddress: '13 Rudkin Court',
53
+ AddressLine2: 'Hoppers Crossing VIC 3029',
54
+ Phone: '0421 280 732',
55
+ CompanyMobile: '0401 016 565',
56
+ CompanyEmailDisp: 'CITYWIDEDEMOLITION@HOTMAIL.COM',
57
+ CompanyWebURLDisp: 'www.citywidedemolition.com.au',
58
+ ContactFirstName: 'Eman',
59
+ ContactLastName: 'Al Baarini',
60
+ ContactPhoneDisp: '0421 280 732',
61
+ ContactEmail: 'CITYWIDEDEMOLITION@HOTMAIL.COM',
62
+ ContactMobileDisp: '0421 280 732',
63
+ ServiceAll: 'Class B Asbestos Removalists',
64
+ ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles)',
65
+ },
66
+ {
67
+ ResourceName: 'Ashcorp Holdings Pty Ltd',
68
+ CompanyAddress: '17 Rohs Road',
69
+ AddressLine2: 'EAST BENDIGO VIC 3550',
70
+ Phone: '(03) 5444 3261',
71
+ CompanyMobile: '0409 012 780',
72
+ CompanyEmailDisp: 'admin@ashworthdemolition.com.au',
73
+ CompanyWebURLDisp: '',
74
+ ContactFirstName: 'Dean',
75
+ ContactLastName: 'Ashworth',
76
+ ContactPhoneDisp: '(03) 5444 3261',
77
+ ContactEmail: 'info@ashworthdemolition.com.au',
78
+ ContactMobileDisp: '0409012780',
79
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
80
+ ServicesAll: 'removal of all types of non-friable asbestos containing material,removal of asbestos containing gaskets and ropes,removal of friable asbestos containing material from soil that does not require an enclosure with negative air unit(s),removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire,The Licence is restricted to removal of asbestos containing material that does not require an enclosure with a negative air unit(s).'
81
+ },
82
+ {
83
+ ResourceName: 'Ventia Utility Services Pty Limited',
84
+ CompanyAddress: 'Ventia - Cardinia Building, 25 Lucknow Street',
85
+ AddressLine2: 'MITCHAM VIC 3132',
86
+ Phone: '0438531164',
87
+ CompanyMobile: '',
88
+ CompanyEmailDisp: 'daniel.dehaan@ventia.com',
89
+ CompanyWebURLDisp: 'www.ventia.com.au',
90
+ ContactFirstName: 'Daniel',
91
+ ContactLastName: 'DeHaan',
92
+ ContactPhoneDisp: '0438531164',
93
+ ContactEmail: 'daniel.dehaan@ventia.com',
94
+ ContactMobileDisp: '0438531164',
95
+ ServiceAll: 'Class B - Restricted - Asbestos Removalists',
96
+ ServicesAll: 'Bituminous coal tar coatings,Non-friable Asbestos Cement Water Pipes and Associated Fittings ONLY,Non-friable Asbetos Containing Bituminous Coating on Mild Steel Pipes',
97
+ },
98
+ {
99
+ ResourceName: 'ONE A.D.S Asbestos Removal Pty Ltd',
100
+ CompanyAddress: '62 Webber Parade',
101
+ AddressLine2: 'KEILOR EAST VIC 3033',
102
+ Phone: '0404073745',
103
+ CompanyMobile: '0404 073 745',
104
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
105
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
106
+ ContactFirstName: 'Ivan',
107
+ ContactLastName: 'Silva',
108
+ ContactPhoneDisp: '0404073745',
109
+ ContactEmail: 'ads.asbestos@gmail.com',
110
+ ContactMobileDisp: '1300 064 277',
111
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
112
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
113
+ },
114
+ {
115
+ ResourceName: 'TWO A.D.S Asbestos Removal Pty Ltd',
116
+ CompanyAddress: '62 Webber Parade',
117
+ AddressLine2: 'KEILOR EAST VIC 3033',
118
+ Phone: '0404073745',
119
+ CompanyMobile: '0404 073 745',
120
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
121
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
122
+ ContactFirstName: 'Ivan',
123
+ ContactLastName: 'Silva',
124
+ ContactPhoneDisp: '0404073745',
125
+ ContactEmail: 'ads.asbestos@gmail.com',
126
+ ContactMobileDisp: '1300 064 277',
127
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
128
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
129
+ },
130
+ {
131
+ ResourceName: 'Three A.D.S Asbestos Removal Pty Ltd',
132
+ CompanyAddress: '62 Webber Parade',
133
+ AddressLine2: 'KEILOR EAST VIC 3033',
134
+ Phone: '0404073745',
135
+ CompanyMobile: '0404 073 745',
136
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
137
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
138
+ ContactFirstName: 'Ivan',
139
+ ContactLastName: 'Silva',
140
+ ContactPhoneDisp: '0404073745',
141
+ ContactEmail: 'ads.asbestos@gmail.com',
142
+ ContactMobileDisp: '1300 064 277',
143
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
144
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
145
+ },
146
+ {
147
+ ResourceName: 'FOUR A.D.S Asbestos Removal Pty Ltd',
148
+ CompanyAddress: '62 Webber Parade',
149
+ AddressLine2: 'KEILOR EAST VIC 3033',
150
+ Phone: '0404073745',
151
+ CompanyMobile: '0404 073 745',
152
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
153
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
154
+ ContactFirstName: 'Ivan',
155
+ ContactLastName: 'Silva',
156
+ ContactPhoneDisp: '0404073745',
157
+ ContactEmail: 'ads.asbestos@gmail.com',
158
+ ContactMobileDisp: '1300 064 277',
159
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
160
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
161
+ },
162
+ {
163
+ ResourceName: 'Five A.D.S Asbestos Removal Pty Ltd',
164
+ CompanyAddress: '62 Webber Parade',
165
+ AddressLine2: 'KEILOR EAST VIC 3033',
166
+ Phone: '0404073745',
167
+ CompanyMobile: '0404 073 745',
168
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
169
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
170
+ ContactFirstName: 'Ivan',
171
+ ContactLastName: 'Silva',
172
+ ContactPhoneDisp: '0404073745',
173
+ ContactEmail: 'ads.asbestos@gmail.com',
174
+ ContactMobileDisp: '1300 064 277',
175
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
176
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
177
+ },
178
+ {
179
+ ResourceName: 'SIX A.D.S Asbestos Removal Pty Ltd',
180
+ CompanyAddress: '62 Webber Parade',
181
+ AddressLine2: 'KEILOR EAST VIC 3033',
182
+ Phone: '0404073745',
183
+ CompanyMobile: '0404 073 745',
184
+ CompanyEmailDisp: 'ads.asbestos@gmail.com',
185
+ CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
186
+ ContactFirstName: 'Ivan',
187
+ ContactLastName: 'Silva',
188
+ ContactPhoneDisp: '0404073745',
189
+ ContactEmail: 'ads.asbestos@gmail.com',
190
+ ContactMobileDisp: '1300 064 277',
191
+ ServiceAll: 'Class A - Restricted - Asbestos Removalists',
192
+ ServicesAll: 'removal of any asbestos containing material that was previously non-friable but has become friable as a result of a fire and does not require an enclosure with a negative air unit(s) to perform the work.',
193
+ },
194
+ {
195
+ ResourceName: 'SSM Asbestos Removal Pty Ltd',
196
+ CompanyAddress: '90 Marriage Lane',
197
+ AddressLine2: 'HILLSIDE VIC 3875',
198
+ Phone: '0405 083 197',
199
+ CompanyMobile: '0405 083 197',
200
+ CompanyEmailDisp: 'steve@ssmasbestos.com.au',
201
+ CompanyWebURLDisp: 'www.ssm-asbestosremoval.com',
202
+ ContactFirstName: 'Steven',
203
+ ContactLastName: 'McCarthy',
204
+ ContactPhoneDisp: '0405 083 197',
205
+ ContactEmail: 'steve@ssmasbestos.com.au',
206
+ ContactMobileDisp: '0405 083 197',
207
+ ServiceAll: 'Class A Asbestos Removalists',
208
+ ServicesAll: 'All types of Asbestos containing material (friable & non-friable)',
209
+ },
210
+ {
211
+ ResourceName: 'Golden Plains Asbestos PTY LTD',
212
+ CompanyAddress: '165 Grevillea Drive',
213
+ AddressLine2: 'ENFIELD VIC 3352',
214
+ Phone: '0450582103',
215
+ CompanyMobile: '0450582103',
216
+ CompanyEmailDisp: 'gpasbestos@outlook.com',
217
+ CompanyWebURLDisp: '',
218
+ ContactFirstName: 'Carlos',
219
+ ContactLastName: 'Rios',
220
+ ContactPhoneDisp: '0450582103',
221
+ ContactEmail: 'gpasbestos@outlook.com',
222
+ ContactMobileDisp: '0450582103',
223
+ ServiceAll: 'Class A Asbestos Removalists',
224
+ ServicesAll: 'All types of Asbestos containing material (friable & non-friable)',
225
+ }
226
+ ]