@worksafevictoria/wcl7.5 1.12.0 → 1.13.0-beta.2
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 +1 -1
- package/src/components/Paragraphs/Directory/Asbestos/Records/SingleRecord/index.stories.js +8 -8
- package/src/components/Paragraphs/Directory/Asbestos/Records/SingleRecord/index.vue +2 -2
- package/src/components/Paragraphs/Directory/Asbestos/Records/index.vue +36 -34
- package/src/components/SubComponents/ResourceGroup/index.vue +183 -151
- package/src/mock/asbestos-removalists.js +224 -196
package/package.json
CHANGED
|
@@ -3,17 +3,17 @@ import arRecord from './index.vue'
|
|
|
3
3
|
const arData =
|
|
4
4
|
{
|
|
5
5
|
title: 'Ventia Utility Services Pty Limited',
|
|
6
|
-
fullAddress: 'MITCHAM
|
|
7
|
-
workPhone: '0438531164',
|
|
6
|
+
fullAddress: 'MITCHAM 3132',
|
|
7
|
+
// workPhone: '0438531164',
|
|
8
8
|
mobilePhone: '0438531164',
|
|
9
9
|
email: 'daniel.dehaan@ventia.com',
|
|
10
|
-
website: 'http://www.ventia.com.au',
|
|
10
|
+
// website: 'http://www.ventia.com.au',
|
|
11
11
|
contact1: 'Daniel DeHaan',
|
|
12
|
-
phone1: '0438531164',
|
|
13
|
-
email1: 'daniel.dehaan@ventia.com',
|
|
14
|
-
mobile1: '0438531164',
|
|
15
|
-
serviceCategory: 'Class B -
|
|
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',
|
|
12
|
+
// phone1: '0438531164',
|
|
13
|
+
// email1: 'daniel.dehaan@ventia.com',
|
|
14
|
+
// mobile1: '0438531164',
|
|
15
|
+
serviceCategory: 'Class B - Non-friable',
|
|
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
17
|
}
|
|
18
18
|
|
|
19
19
|
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
<h4>{{ item.serviceCategory }}</h4>
|
|
100
100
|
</column>
|
|
101
101
|
</row>
|
|
102
|
-
<row class="dir-additional-records">
|
|
102
|
+
<!-- <row class="dir-additional-records">
|
|
103
103
|
<column>
|
|
104
104
|
<ul>
|
|
105
105
|
<li v-for="serv in item.services.split(',')" :key="serv.id">
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
</li>
|
|
108
108
|
</ul>
|
|
109
109
|
</column>
|
|
110
|
-
</row>
|
|
110
|
+
</row> -->
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
113
|
</container>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section-group class="paragraph--directory dir-filters">
|
|
3
3
|
<!-- Filters -->
|
|
4
|
-
<row style="column-gap:
|
|
4
|
+
<row style="column-gap: 10px">
|
|
5
5
|
<!-- Keyword Filters -->
|
|
6
|
-
<column xxl="2" xl="3" md="4" sm="6">
|
|
6
|
+
<!-- <column xxl="2" xl="3" md="4" sm="6"> -->
|
|
7
|
+
<column xxl="2" xl="3" md="4" sm="6">
|
|
7
8
|
<label class="col-form-label visually-hidden" for="keyword-search">
|
|
8
9
|
Search by keyword (typed keyword automatically filters below results)
|
|
9
10
|
</label>
|
|
@@ -44,21 +45,21 @@
|
|
|
44
45
|
<option class="placeholder" value="" disabled hidden selected>
|
|
45
46
|
Service class
|
|
46
47
|
</option>
|
|
47
|
-
<option value="Class A
|
|
48
|
-
Class A
|
|
48
|
+
<option value="Class A - Friable and non-friable">
|
|
49
|
+
Class A - Friable and non-friable
|
|
49
50
|
</option>
|
|
50
|
-
<option value="Class B
|
|
51
|
-
Class B
|
|
51
|
+
<option value="Class B - Non-friable">
|
|
52
|
+
Class B - Non-friable
|
|
52
53
|
</option>
|
|
53
|
-
<option value="Class A - Restricted - Asbestos Removalists">
|
|
54
|
+
<!-- <option value="Class A - Restricted - Asbestos Removalists">
|
|
54
55
|
Class A - Restricted - Asbestos Removalists
|
|
55
56
|
</option>
|
|
56
57
|
<option value="Class B - Restricted - Asbestos Removalists">
|
|
57
58
|
Class B - Restricted - Asbestos Removalists
|
|
58
|
-
</option>
|
|
59
|
+
</option> -->
|
|
59
60
|
</select>
|
|
60
61
|
</column>
|
|
61
|
-
<column xxl="2" xl="3" md="4" sm="6">
|
|
62
|
+
<!-- <column xxl="2" xl="3" md="4" sm="6">
|
|
62
63
|
<label class="col-form-label visually-hidden" for="search-services">
|
|
63
64
|
Search by suburb (typed suburb automatically filters below results)
|
|
64
65
|
</label>
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
aria-label="Search by suburb (typed suburb automatically filters below results)"
|
|
71
72
|
class="search"
|
|
72
73
|
/>
|
|
73
|
-
</column>
|
|
74
|
+
</column> -->
|
|
74
75
|
<column md="2">
|
|
75
76
|
<filter-button
|
|
76
77
|
v-if="!hideReset"
|
|
@@ -159,14 +160,14 @@ export default {
|
|
|
159
160
|
.includes(this.searchClass.toLowerCase()),
|
|
160
161
|
)
|
|
161
162
|
}
|
|
162
|
-
if (this.searchServices.length) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
163
|
+
// if (this.searchServices.length) {
|
|
164
|
+
// this.hideReset = false
|
|
165
|
+
// results = results.filter((item) =>
|
|
166
|
+
// item.services
|
|
167
|
+
// .toLowerCase()
|
|
168
|
+
// .includes(this.searchServices.toLowerCase()),
|
|
169
|
+
// )
|
|
170
|
+
// }
|
|
170
171
|
this.filteredItems = results
|
|
171
172
|
|
|
172
173
|
if (
|
|
@@ -184,7 +185,7 @@ export default {
|
|
|
184
185
|
flatRecords() {
|
|
185
186
|
let flatRecords = []
|
|
186
187
|
const sortedItems = this.items.sort((a, b) =>
|
|
187
|
-
a.
|
|
188
|
+
a.Account.localeCompare(b.Account, 'en', {
|
|
188
189
|
sensitivity: 'base',
|
|
189
190
|
}),
|
|
190
191
|
)
|
|
@@ -192,21 +193,22 @@ export default {
|
|
|
192
193
|
sortedItems.forEach((record) => {
|
|
193
194
|
flatRecords.push({
|
|
194
195
|
type: 'ar',
|
|
195
|
-
title: record.
|
|
196
|
-
fullAddress: record.
|
|
197
|
-
workPhone: record.Phone,
|
|
198
|
-
mobilePhone: record.
|
|
199
|
-
email: record.
|
|
200
|
-
website: this.formatWebsite(record.CompanyWebURLDisp),
|
|
201
|
-
contact1: this.returnContact(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
),
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
196
|
+
title: record.Account,
|
|
197
|
+
fullAddress: record.Regbusinessaddresssuburb + ' ' + record.Regbusinessaddresspostcode,
|
|
198
|
+
// workPhone: record.Phone,
|
|
199
|
+
mobilePhone: record.PrimaryContactMobile,
|
|
200
|
+
email: record.PrimaryContactEmail,
|
|
201
|
+
// website: this.formatWebsite(record.CompanyWebURLDisp),
|
|
202
|
+
// contact1: this.returnContact(
|
|
203
|
+
// record.ContactFirstName,
|
|
204
|
+
// record.ContactLastName,
|
|
205
|
+
// ),
|
|
206
|
+
contact1: record.PrimaryContactAccountName,
|
|
207
|
+
// email1: record.PrimaryContactEmail,
|
|
208
|
+
// phone1: record.ContactPhoneDisp,
|
|
209
|
+
// mobile1: record.PrimaryContactMobile,
|
|
210
|
+
// services: record.ServicesAll.replace(/,$/, ''),
|
|
211
|
+
serviceCategory: record.AsbestosClass,
|
|
210
212
|
})
|
|
211
213
|
})
|
|
212
214
|
return flatRecords
|
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
:background-variant="background"
|
|
15
15
|
@selected="selectedCard"
|
|
16
16
|
>
|
|
17
|
-
<template
|
|
17
|
+
<template
|
|
18
|
+
v-if="enableBundleFilter && bundle.length > 1"
|
|
19
|
+
v-slot:gridHeaderRight
|
|
20
|
+
>
|
|
18
21
|
<switcher
|
|
19
22
|
v-if="enableBundleFilter"
|
|
20
23
|
:options="bundle"
|
|
@@ -45,7 +48,8 @@
|
|
|
45
48
|
:class="{
|
|
46
49
|
[`card_group__card--${card.colour}`]: card.pillText,
|
|
47
50
|
[`card_group__card--none`]: !card.pillText,
|
|
48
|
-
[`card_group__card--${cardResourseType}`]:
|
|
51
|
+
[`card_group__card--${cardResourseType}`]:
|
|
52
|
+
'card_group__card--resourse-group',
|
|
49
53
|
}"
|
|
50
54
|
:card-header-title="card.title"
|
|
51
55
|
:caret="getCaret(card)"
|
|
@@ -71,7 +75,10 @@
|
|
|
71
75
|
</template>
|
|
72
76
|
|
|
73
77
|
<!-- footer - download button -->
|
|
74
|
-
<template
|
|
78
|
+
<template
|
|
79
|
+
v-if="cardResourseType === 'resource-group'"
|
|
80
|
+
v-slot:cardFooter
|
|
81
|
+
>
|
|
75
82
|
<card-footer :card="card" :resource-type="cardResourseType" />
|
|
76
83
|
</template>
|
|
77
84
|
</card-grid-item>
|
|
@@ -113,20 +120,24 @@
|
|
|
113
120
|
</template>
|
|
114
121
|
|
|
115
122
|
<script>
|
|
116
|
-
import Column from
|
|
117
|
-
import CardGrid from
|
|
118
|
-
import CardGridItem from
|
|
119
|
-
import CardTop from
|
|
120
|
-
import CardBody from
|
|
121
|
-
import CardFooter from
|
|
122
|
-
import CtaButton from
|
|
123
|
-
import DirectoryFilters from
|
|
124
|
-
import Switcher from
|
|
125
|
-
import {
|
|
126
|
-
|
|
123
|
+
import Column from './../../Containers/Column/index.vue'
|
|
124
|
+
import CardGrid from './../../Common/CardGrid/index.vue'
|
|
125
|
+
import CardGridItem from './../../Common/CardGridItem/index.vue'
|
|
126
|
+
import CardTop from './cardtop.vue'
|
|
127
|
+
import CardBody from './cardbody.vue'
|
|
128
|
+
import CardFooter from './cardfooter.vue'
|
|
129
|
+
import CtaButton from './../CtaButton/index.vue'
|
|
130
|
+
import DirectoryFilters from './../../Global/DirectoryFilters/index.vue'
|
|
131
|
+
import Switcher from './switcher.vue'
|
|
132
|
+
import {
|
|
133
|
+
isAbsoluteUrl,
|
|
134
|
+
navigateToPath,
|
|
135
|
+
isGovSite,
|
|
136
|
+
} from './../../../../lib/utility'
|
|
137
|
+
import { BSpinner } from 'bootstrap-vue-next'
|
|
127
138
|
|
|
128
139
|
export default {
|
|
129
|
-
name:
|
|
140
|
+
name: 'ResourceGroup',
|
|
130
141
|
components: {
|
|
131
142
|
Column,
|
|
132
143
|
CardGrid,
|
|
@@ -142,15 +153,15 @@ export default {
|
|
|
142
153
|
props: {
|
|
143
154
|
background: {
|
|
144
155
|
type: String,
|
|
145
|
-
default:
|
|
156
|
+
default: 'white',
|
|
146
157
|
},
|
|
147
158
|
title: {
|
|
148
159
|
type: String,
|
|
149
|
-
default:
|
|
160
|
+
default: '',
|
|
150
161
|
},
|
|
151
162
|
titleTag: {
|
|
152
163
|
type: String,
|
|
153
|
-
default:
|
|
164
|
+
default: 'h2',
|
|
154
165
|
},
|
|
155
166
|
rtl: {
|
|
156
167
|
type: Boolean,
|
|
@@ -158,7 +169,7 @@ export default {
|
|
|
158
169
|
},
|
|
159
170
|
bundle: {
|
|
160
171
|
type: Array,
|
|
161
|
-
default: () => [
|
|
172
|
+
default: () => [''],
|
|
162
173
|
},
|
|
163
174
|
columns: {
|
|
164
175
|
type: Number,
|
|
@@ -191,7 +202,7 @@ export default {
|
|
|
191
202
|
},
|
|
192
203
|
resourceType: {
|
|
193
204
|
type: String,
|
|
194
|
-
default:
|
|
205
|
+
default: 'resource-group',
|
|
195
206
|
},
|
|
196
207
|
showLoadMore: {
|
|
197
208
|
type: Boolean,
|
|
@@ -199,7 +210,7 @@ export default {
|
|
|
199
210
|
},
|
|
200
211
|
emptyCardsText: {
|
|
201
212
|
type: String,
|
|
202
|
-
default:
|
|
213
|
+
default: 'No results returned',
|
|
203
214
|
},
|
|
204
215
|
loading: {
|
|
205
216
|
type: Boolean,
|
|
@@ -209,11 +220,11 @@ export default {
|
|
|
209
220
|
// Temp use of mounted to replace fetch
|
|
210
221
|
async mounted() {
|
|
211
222
|
if (this.displayedCards.length === 0) {
|
|
212
|
-
console.log(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
);
|
|
216
|
-
await this.loadFiltersAndContent()
|
|
223
|
+
// console.log(
|
|
224
|
+
// "🚀 ~ mounted ~ this.displayedCards.length:",
|
|
225
|
+
// this.displayedCards.length
|
|
226
|
+
// );
|
|
227
|
+
await this.loadFiltersAndContent()
|
|
217
228
|
}
|
|
218
229
|
},
|
|
219
230
|
// TODO useAsyncData <script setup>
|
|
@@ -237,92 +248,97 @@ export default {
|
|
|
237
248
|
selected: {},
|
|
238
249
|
availableBundles: [],
|
|
239
250
|
},
|
|
240
|
-
}
|
|
251
|
+
}
|
|
241
252
|
},
|
|
242
253
|
computed: {
|
|
243
254
|
allCardsRTL() {
|
|
244
255
|
if (this.displayedCards.length === 0) {
|
|
245
|
-
return this.rtl
|
|
256
|
+
return this.rtl
|
|
246
257
|
}
|
|
247
|
-
return this.displayedCards.every((card) => this.rtl || card.rtl)
|
|
258
|
+
return this.displayedCards.every((card) => this.rtl || card.rtl)
|
|
248
259
|
},
|
|
249
260
|
},
|
|
250
261
|
fetchOnServer: true,
|
|
251
|
-
fetchKey:
|
|
262
|
+
fetchKey: 'wcl-card-group',
|
|
252
263
|
methods: {
|
|
253
264
|
async loadFiltersAndContent() {
|
|
254
265
|
await Promise.all([
|
|
255
266
|
this.fetchFilters ? this.loadFilters() : Promise.resolve(),
|
|
256
267
|
this.loadMoreCards(true),
|
|
257
|
-
])
|
|
258
|
-
console.log(
|
|
268
|
+
])
|
|
269
|
+
console.log(
|
|
270
|
+
'🚀 ~ loadFiltersAndContent ~ this.fetchFilters:',
|
|
271
|
+
this.fetchFilters,
|
|
272
|
+
)
|
|
259
273
|
},
|
|
260
274
|
init() {
|
|
261
275
|
this.allCards = {
|
|
262
276
|
total: 0,
|
|
263
277
|
cards: [],
|
|
264
|
-
}
|
|
265
|
-
this.displayLimit = 0
|
|
266
|
-
this.hasMorePages = false
|
|
267
|
-
this.displayedCards = []
|
|
268
|
-
this.bundleCache = {}
|
|
278
|
+
}
|
|
279
|
+
this.displayLimit = 0
|
|
280
|
+
this.hasMorePages = false
|
|
281
|
+
this.displayedCards = []
|
|
282
|
+
this.bundleCache = {}
|
|
269
283
|
},
|
|
270
284
|
async fetchCards(currentDisplayedCards, allCards, addMoreBy, bundles) {
|
|
271
285
|
const shouldMakeNewFetchCall =
|
|
272
|
-
currentDisplayedCards.length + addMoreBy > allCards.cards.length
|
|
286
|
+
currentDisplayedCards.length + addMoreBy > allCards.cards.length
|
|
273
287
|
|
|
274
288
|
if (shouldMakeNewFetchCall) {
|
|
275
289
|
const cardBundles = await Promise.all(
|
|
276
|
-
bundles.map((bundle, index) =>
|
|
277
|
-
|
|
290
|
+
bundles.map((bundle, index) =>
|
|
291
|
+
this.getBundle(bundle, addMoreBy, index),
|
|
292
|
+
),
|
|
293
|
+
)
|
|
278
294
|
|
|
279
|
-
allCards = this.getShuffledCards(cardBundles)
|
|
295
|
+
allCards = this.getShuffledCards(cardBundles)
|
|
280
296
|
|
|
281
297
|
if (
|
|
282
|
-
this.type ===
|
|
283
|
-
this.type ===
|
|
284
|
-
this.type ===
|
|
285
|
-
this.type ===
|
|
298
|
+
this.type === 'paragraph--cards_group_latest' ||
|
|
299
|
+
this.type === 'paragraph--browse_content' ||
|
|
300
|
+
this.type === 'paragraph--resource_group' ||
|
|
301
|
+
this.type === 'paragraph--resource_list'
|
|
286
302
|
) {
|
|
287
303
|
// allCards.cards = this.sortByDate(allCards.cards);
|
|
288
|
-
allCards.cards = allCards.cards
|
|
304
|
+
allCards.cards = allCards.cards
|
|
289
305
|
}
|
|
290
306
|
}
|
|
291
|
-
return allCards
|
|
307
|
+
return allCards
|
|
292
308
|
},
|
|
293
309
|
async loadMoreCards(init) {
|
|
294
310
|
const attrs = {
|
|
295
311
|
group: this.$pageStore?.content?.title,
|
|
296
312
|
//group: this.$store?.state?.page?.content?.title,
|
|
297
|
-
}
|
|
313
|
+
}
|
|
298
314
|
if (this.$gtm && !init) {
|
|
299
|
-
this.$gtm.push({ event:
|
|
315
|
+
this.$gtm.push({ event: 'custom.interaction.showmore.click', ...attrs })
|
|
300
316
|
}
|
|
301
317
|
if (init) {
|
|
302
|
-
this.init()
|
|
318
|
+
this.init()
|
|
303
319
|
}
|
|
304
|
-
this.loader = true
|
|
305
|
-
const addMoreBy = this.initialDisplyLimit
|
|
306
|
-
this.displayLimit += addMoreBy
|
|
320
|
+
this.loader = true
|
|
321
|
+
const addMoreBy = this.initialDisplyLimit
|
|
322
|
+
this.displayLimit += addMoreBy
|
|
307
323
|
const bundles =
|
|
308
324
|
this.filters.availableBundles.length > 0
|
|
309
325
|
? this.filters.availableBundles
|
|
310
|
-
: this.bundle
|
|
326
|
+
: this.bundle
|
|
311
327
|
this.allCards = await this.fetchCards(
|
|
312
328
|
this.displayedCards,
|
|
313
329
|
this.allCards,
|
|
314
330
|
addMoreBy,
|
|
315
|
-
bundles
|
|
316
|
-
)
|
|
331
|
+
bundles,
|
|
332
|
+
)
|
|
317
333
|
|
|
318
|
-
this.hasMorePages = this.allCards.total > this.allCards.cards.length
|
|
319
|
-
this.displayedCards = this.allCards.cards.slice(0, this.displayLimit)
|
|
334
|
+
this.hasMorePages = this.allCards.total > this.allCards.cards.length
|
|
335
|
+
this.displayedCards = this.allCards.cards.slice(0, this.displayLimit)
|
|
320
336
|
|
|
321
|
-
this.loader = false
|
|
337
|
+
this.loader = false
|
|
322
338
|
},
|
|
323
339
|
getBundle(bundle, addMoreBy, index) {
|
|
324
|
-
let start
|
|
325
|
-
const rows = addMoreBy
|
|
340
|
+
let start
|
|
341
|
+
const rows = addMoreBy
|
|
326
342
|
const cache = (this.bundleCache[bundle] = this.bundleCache[bundle] || {
|
|
327
343
|
response: {
|
|
328
344
|
results: [],
|
|
@@ -331,166 +347,177 @@ export default {
|
|
|
331
347
|
qs: {
|
|
332
348
|
start,
|
|
333
349
|
},
|
|
334
|
-
})
|
|
350
|
+
})
|
|
335
351
|
|
|
336
352
|
if (cache.qs.start === undefined) {
|
|
337
|
-
start = 0
|
|
353
|
+
start = 0
|
|
338
354
|
} else if (cache.response.numFound > cache.response.results.length) {
|
|
339
|
-
start = cache.response.results.length
|
|
355
|
+
start = cache.response.results.length
|
|
340
356
|
} else {
|
|
341
|
-
return Promise.resolve(cache.response)
|
|
357
|
+
return Promise.resolve(cache.response)
|
|
342
358
|
}
|
|
343
359
|
|
|
344
360
|
const qs = {
|
|
345
361
|
bundle,
|
|
346
362
|
rows,
|
|
347
363
|
start,
|
|
348
|
-
}
|
|
349
|
-
return this.fetchContent(qs, this.filters.selected, index).then(
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
364
|
+
}
|
|
365
|
+
return this.fetchContent(qs, this.filters.selected, index).then(
|
|
366
|
+
(response) => {
|
|
367
|
+
cache.qs.start = qs.start
|
|
368
|
+
cache.response.numFound = response.numFound
|
|
369
|
+
cache.response.results.push(...response.results)
|
|
370
|
+
return cache.response
|
|
371
|
+
},
|
|
372
|
+
)
|
|
355
373
|
},
|
|
356
374
|
getShuffledCards(cardBundles) {
|
|
357
|
-
const shuffled = []
|
|
375
|
+
const shuffled = []
|
|
358
376
|
const bundleWithMostCards = cardBundles.reduce(
|
|
359
377
|
(a, b) => (a.results.length > b.results.length ? a : b),
|
|
360
|
-
{ results: [] }
|
|
361
|
-
).results.length
|
|
378
|
+
{ results: [] },
|
|
379
|
+
).results.length
|
|
362
380
|
|
|
363
381
|
for (let i = 0; i < bundleWithMostCards; i++) {
|
|
364
382
|
cardBundles.forEach((bundle) => {
|
|
365
383
|
if (bundle.results[i]) {
|
|
366
|
-
shuffled.push(bundle.results[i])
|
|
384
|
+
shuffled.push(bundle.results[i])
|
|
367
385
|
}
|
|
368
|
-
})
|
|
386
|
+
})
|
|
369
387
|
}
|
|
370
388
|
|
|
371
389
|
const total = cardBundles.reduce((acc, bundle) => {
|
|
372
|
-
return acc + bundle.numFound
|
|
373
|
-
}, 0)
|
|
390
|
+
return acc + bundle.numFound
|
|
391
|
+
}, 0)
|
|
374
392
|
|
|
375
|
-
return { cards: shuffled, total }
|
|
393
|
+
return { cards: shuffled, total }
|
|
376
394
|
},
|
|
377
395
|
loadFilters() {
|
|
378
396
|
return this.fetchFilters().then((taxonomies) => {
|
|
379
|
-
console.log(
|
|
380
|
-
this.filters.taxonomies = taxonomies
|
|
381
|
-
return Promise.resolve(taxonomies)
|
|
382
|
-
})
|
|
397
|
+
console.log('🚀 ~ returnthis.fetchFilters ~ taxonomies:', taxonomies)
|
|
398
|
+
this.filters.taxonomies = taxonomies
|
|
399
|
+
return Promise.resolve(taxonomies)
|
|
400
|
+
})
|
|
383
401
|
},
|
|
384
402
|
onFilter(filters) {
|
|
385
|
-
this.bundleCache = {}
|
|
403
|
+
this.bundleCache = {}
|
|
386
404
|
Object.keys(filters).forEach((filter) => {
|
|
387
|
-
this.filters.selected[filter] = filters[filter].map((obj) => obj.tid)
|
|
388
|
-
})
|
|
389
|
-
this.loadMoreCards(true)
|
|
405
|
+
this.filters.selected[filter] = filters[filter].map((obj) => obj.tid)
|
|
406
|
+
})
|
|
407
|
+
this.loadMoreCards(true)
|
|
390
408
|
},
|
|
391
409
|
onSwitcher(switchToBundle) {
|
|
392
|
-
this.filters.selected = {}
|
|
393
|
-
this.filters.availableBundles.length = 0
|
|
410
|
+
this.filters.selected = {}
|
|
411
|
+
this.filters.availableBundles.length = 0
|
|
394
412
|
if (switchToBundle) {
|
|
395
|
-
this.filters.availableBundles.push(switchToBundle)
|
|
413
|
+
this.filters.availableBundles.push(switchToBundle)
|
|
396
414
|
}
|
|
397
|
-
this.loadMoreCards(true)
|
|
415
|
+
this.loadMoreCards(true)
|
|
398
416
|
},
|
|
399
417
|
async reset() {
|
|
400
|
-
this.bundleCache = {}
|
|
401
|
-
this.filters.selected = {}
|
|
402
|
-
this.filters.availableBundles.length = 0
|
|
403
|
-
await this.loadMoreCards(true)
|
|
418
|
+
this.bundleCache = {}
|
|
419
|
+
this.filters.selected = {}
|
|
420
|
+
this.filters.availableBundles.length = 0
|
|
421
|
+
await this.loadMoreCards(true)
|
|
404
422
|
},
|
|
405
423
|
sortByDate(cards) {
|
|
406
424
|
const sorted = cards.sort((a, b) => {
|
|
407
|
-
return new Date(b.dateSort) - new Date(a.dateSort)
|
|
408
|
-
})
|
|
409
|
-
return sorted
|
|
425
|
+
return new Date(b.dateSort) - new Date(a.dateSort)
|
|
426
|
+
})
|
|
427
|
+
return sorted
|
|
410
428
|
},
|
|
411
429
|
handleLoadMore() {
|
|
412
|
-
this.loadMoreCards(false)
|
|
430
|
+
this.loadMoreCards(false)
|
|
413
431
|
},
|
|
414
432
|
|
|
415
433
|
getCaret(card) {
|
|
416
434
|
if (card.link && isAbsoluteUrl(card.link)) {
|
|
417
|
-
return
|
|
435
|
+
return 'external'
|
|
418
436
|
} else {
|
|
419
|
-
return undefined
|
|
437
|
+
return undefined
|
|
420
438
|
}
|
|
421
439
|
},
|
|
422
440
|
selectedCard(card) {
|
|
423
441
|
// Some custom logic for gov caretaker logic
|
|
424
442
|
if (
|
|
425
|
-
(this.$config
|
|
443
|
+
(this.$config
|
|
444
|
+
? this.$config.public.caretaker
|
|
445
|
+
: process.env.CARETAKER) === 'true'
|
|
426
446
|
) {
|
|
427
447
|
if (!isGovSite(card?.selectedCard?.link)) {
|
|
428
448
|
// this.$store.commit('page/SET_CARETAKER_REF', 'list-group')
|
|
429
449
|
// this.$root.$emit('caretaker-open', card?.selectedCard?.link)
|
|
430
450
|
if (this.$pageStore) {
|
|
431
|
-
this.$pageStore.caretaker.referrer =
|
|
451
|
+
this.$pageStore.caretaker.referrer = 'list-group'
|
|
432
452
|
}
|
|
433
453
|
if (this.$bus) {
|
|
434
|
-
this.$bus.$emit(
|
|
454
|
+
this.$bus.$emit('caretaker-open', card?.selectedCard?.link)
|
|
435
455
|
}
|
|
436
456
|
} else {
|
|
437
457
|
navigateToPath.call(
|
|
438
458
|
this,
|
|
439
459
|
card?.selectedCard?.link,
|
|
440
|
-
card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
|
|
441
|
-
)
|
|
460
|
+
card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
|
|
461
|
+
)
|
|
442
462
|
}
|
|
443
463
|
} else {
|
|
444
464
|
navigateToPath.call(
|
|
445
465
|
this,
|
|
446
466
|
card?.selectedCard?.link,
|
|
447
|
-
card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
|
|
448
|
-
)
|
|
467
|
+
card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
|
|
468
|
+
)
|
|
449
469
|
}
|
|
450
470
|
},
|
|
451
471
|
focussed(ev) {
|
|
452
|
-
const path = ev.path || (ev.composedPath && ev.composedPath())
|
|
453
|
-
const theTabbedCards = path.find(
|
|
472
|
+
const path = ev.path || (ev.composedPath && ev.composedPath())
|
|
473
|
+
const theTabbedCards = path.find(
|
|
474
|
+
(el) => el['_prevClass'] === 'tabbed-cards',
|
|
475
|
+
)
|
|
454
476
|
if (ev.shiftKey && theTabbedCards) {
|
|
455
|
-
ev.preventDefault()
|
|
456
|
-
let selectedTabbedCards =
|
|
457
|
-
|
|
458
|
-
let
|
|
459
|
-
|
|
460
|
-
|
|
477
|
+
ev.preventDefault()
|
|
478
|
+
let selectedTabbedCards =
|
|
479
|
+
theTabbedCards.getElementsByClassName('isSelected')
|
|
480
|
+
let selectedCard = selectedTabbedCards[0].getElementsByTagName('button')
|
|
481
|
+
let thePrevLGItem =
|
|
482
|
+
ev.target?.parentElement?.parentElement?.previousSibling?.getElementsByTagName(
|
|
483
|
+
'button',
|
|
484
|
+
)
|
|
461
485
|
if (thePrevLGItem) {
|
|
462
|
-
thePrevLGItem[0].focus()
|
|
486
|
+
thePrevLGItem[0].focus()
|
|
463
487
|
} else {
|
|
464
|
-
selectedCard[0].focus()
|
|
488
|
+
selectedCard[0].focus()
|
|
465
489
|
}
|
|
466
490
|
} else if (!ev.shiftKey && theTabbedCards) {
|
|
467
|
-
ev.preventDefault()
|
|
468
|
-
let selectedTabbedCards =
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
491
|
+
ev.preventDefault()
|
|
492
|
+
let selectedTabbedCards =
|
|
493
|
+
theTabbedCards.getElementsByClassName('isSelected')
|
|
494
|
+
let nextTabbedCard =
|
|
495
|
+
selectedTabbedCards[0]?.parentElement?.nextSibling?.getElementsByTagName(
|
|
496
|
+
'button',
|
|
497
|
+
)
|
|
498
|
+
let theNextLGItem =
|
|
499
|
+
ev.target?.parentElement?.parentElement?.nextSibling?.getElementsByTagName(
|
|
500
|
+
'button',
|
|
501
|
+
)
|
|
475
502
|
if (theNextLGItem) {
|
|
476
|
-
theNextLGItem[0].focus()
|
|
503
|
+
theNextLGItem[0].focus()
|
|
477
504
|
} else if (nextTabbedCard) {
|
|
478
|
-
nextTabbedCard[0].focus()
|
|
505
|
+
nextTabbedCard[0].focus()
|
|
479
506
|
} else {
|
|
480
|
-
let nextFocus = this.focusNextElement()
|
|
507
|
+
let nextFocus = this.focusNextElement()
|
|
481
508
|
if (this.$bus) {
|
|
482
|
-
this.$bus.$emit(
|
|
509
|
+
this.$bus.$emit('last-focus-out')
|
|
483
510
|
}
|
|
484
|
-
nextFocus.focus()
|
|
511
|
+
nextFocus.focus()
|
|
485
512
|
}
|
|
486
513
|
} else {
|
|
487
|
-
return true
|
|
514
|
+
return true
|
|
488
515
|
}
|
|
489
516
|
},
|
|
490
517
|
focusNextElement(reverse, activeElem) {
|
|
491
518
|
/*check if an element is defined or use activeElement*/
|
|
492
519
|
activeElem =
|
|
493
|
-
activeElem instanceof HTMLElement ? activeElem : document.activeElement
|
|
520
|
+
activeElem instanceof HTMLElement ? activeElem : document.activeElement
|
|
494
521
|
|
|
495
522
|
let queryString = [
|
|
496
523
|
'a:not([disabled]):not([tabindex="-1"])',
|
|
@@ -499,19 +526,23 @@ export default {
|
|
|
499
526
|
'select:not([disabled]):not([tabindex="-1"])',
|
|
500
527
|
'[tabindex]:not([disabled]):not([tabindex="-1"])',
|
|
501
528
|
/* add custom queries here */
|
|
502
|
-
].join(
|
|
529
|
+
].join(','),
|
|
503
530
|
queryResult = Array.prototype.filter.call(
|
|
504
531
|
document.querySelectorAll(queryString),
|
|
505
532
|
(elem) => {
|
|
506
533
|
/*check for visibility while always include the current activeElement*/
|
|
507
|
-
return
|
|
508
|
-
|
|
534
|
+
return (
|
|
535
|
+
elem.offsetWidth > 0 ||
|
|
536
|
+
elem.offsetHeight > 0 ||
|
|
537
|
+
elem === activeElem
|
|
538
|
+
)
|
|
539
|
+
},
|
|
509
540
|
),
|
|
510
541
|
indexedList = queryResult
|
|
511
542
|
.slice()
|
|
512
543
|
.filter((elem) => {
|
|
513
544
|
/* filter out all indexes not greater than 0 */
|
|
514
|
-
return elem.tabIndex == 0 || elem.tabIndex == -1 ? false : true
|
|
545
|
+
return elem.tabIndex == 0 || elem.tabIndex == -1 ? false : true
|
|
515
546
|
})
|
|
516
547
|
.sort((a, b) => {
|
|
517
548
|
/* sort the array by index from smallest to largest */
|
|
@@ -519,33 +550,34 @@ export default {
|
|
|
519
550
|
? a.tabIndex < b.tabIndex
|
|
520
551
|
? -1
|
|
521
552
|
: b.tabIndex < a.tabIndex
|
|
522
|
-
|
|
523
|
-
|
|
553
|
+
? 1
|
|
554
|
+
: 0
|
|
524
555
|
: a.tabIndex != 0
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
556
|
+
? -1
|
|
557
|
+
: b.tabIndex != 0
|
|
558
|
+
? 1
|
|
559
|
+
: 0
|
|
529
560
|
}),
|
|
530
561
|
focusable = [].concat(
|
|
531
562
|
indexedList,
|
|
532
563
|
queryResult.filter((elem) => {
|
|
533
564
|
/* filter out all indexes above 0 */
|
|
534
|
-
return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
|
|
535
|
-
})
|
|
536
|
-
)
|
|
565
|
+
return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
|
|
566
|
+
}),
|
|
567
|
+
)
|
|
537
568
|
|
|
538
569
|
/* if reverse is true return the previous focusable element
|
|
539
570
|
if reverse is false return the next focusable element */
|
|
540
571
|
return reverse
|
|
541
|
-
? focusable[focusable.indexOf(activeElem) - 1] ||
|
|
542
|
-
|
|
572
|
+
? focusable[focusable.indexOf(activeElem) - 1] ||
|
|
573
|
+
focusable[focusable.length - 1]
|
|
574
|
+
: focusable[focusable.indexOf(activeElem) + 1] || focusable[0]
|
|
543
575
|
},
|
|
544
576
|
},
|
|
545
|
-
}
|
|
577
|
+
}
|
|
546
578
|
</script>
|
|
547
579
|
<style lang="scss" scoped>
|
|
548
|
-
@import
|
|
580
|
+
@import '../../../includes/scss/all';
|
|
549
581
|
$cardTextPadding: 16px;
|
|
550
582
|
$borderRadius: 8px;
|
|
551
583
|
|
|
@@ -1,226 +1,254 @@
|
|
|
1
1
|
export const arData = [
|
|
2
2
|
{
|
|
3
|
-
|
|
4
|
-
CompanyAddress: '62 Webber Parade',
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
Account: 'A.D.S. Asbestos Removal Pty Ltd',
|
|
4
|
+
// CompanyAddress: '62 Webber Parade',
|
|
5
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
6
|
+
Regbusinessaddresspostcode: '3033',
|
|
7
|
+
// Phone: '0404073745',
|
|
8
|
+
// CompanyMobile: '0404 073 745',
|
|
9
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
10
|
+
// CompanyWebURLDisp: 'adsasbestosremoval.com.au',
|
|
11
|
+
// ContactFirstName: 'Ivan',
|
|
12
|
+
// ContactLastName: 'Silva',
|
|
13
|
+
PrimaryContactAccountName: 'Ivan Silva',
|
|
14
|
+
// ContactPhoneDisp: '0404073745',
|
|
15
|
+
PrimaryPrimaryContactEmail: 'ads.asbestos@gmail.com',
|
|
16
|
+
PrimaryContactMobile: '1300 064 277',
|
|
17
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
18
|
+
// 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
19
|
},
|
|
18
20
|
{
|
|
19
|
-
|
|
20
|
-
CompanyAddress: '9 Ewens Court',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
Account: 'AAA ASBESTOS SOLUTIONS PTY LTD',
|
|
22
|
+
// CompanyAddress: '9 Ewens Court',
|
|
23
|
+
Regbusinessaddresssuburb: 'MOUNT GAMBIER',
|
|
24
|
+
Regbusinessaddresspostcode: '5290',
|
|
25
|
+
// Phone: '0418 854 443',
|
|
26
|
+
// CompanyMobile: '0418 854 443',
|
|
27
|
+
// CompanyEmailDisp: 'nieto4@bigpond.net.au',
|
|
28
|
+
// CompanyWebURLDisp: '',
|
|
29
|
+
// ContactFirstName: 'ERIC',
|
|
30
|
+
// ContactLastName: 'NIETO',
|
|
31
|
+
PrimaryContactAccountName: 'ERIC NIETO',
|
|
32
|
+
// ContactPhoneDisp: '0418 854 443',
|
|
33
|
+
PrimaryContactEmail: 'nieto4@bigpond.net.au',
|
|
34
|
+
PrimaryContactMobile: '0418 854 443',
|
|
35
|
+
AsbestosClass: 'Class B - Non-friable',
|
|
36
|
+
// ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles)',
|
|
33
37
|
},
|
|
34
38
|
{
|
|
35
|
-
|
|
36
|
-
CompanyAddress: '44 Townsent Street',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
Account: 'Aaron John Field',
|
|
40
|
+
// CompanyAddress: '44 Townsent Street',
|
|
41
|
+
Regbusinessaddresssuburb: 'Howlong',
|
|
42
|
+
Regbusinessaddresspostcode: '2643',
|
|
43
|
+
// Phone: '',
|
|
44
|
+
// CompanyMobile: '0408474707',
|
|
45
|
+
// CompanyEmailDisp: 'azz_317@homail.com',
|
|
46
|
+
// CompanyWebURLDisp: '',
|
|
47
|
+
// ContactFirstName: 'Aaron',
|
|
48
|
+
// ContactLastName: 'Field',
|
|
49
|
+
PrimaryContactAccountName: 'Aaron Field',
|
|
50
|
+
// ContactPhoneDisp: '',
|
|
51
|
+
PrimaryContactEmail: 'azz_317@homail.com',
|
|
52
|
+
PrimaryContactMobile: '0408474707',
|
|
53
|
+
AsbestosClass: 'Class B - Non-friable',
|
|
54
|
+
// ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles),Telecommunication Asbestos cement pits and pipes',
|
|
49
55
|
},
|
|
50
56
|
{
|
|
51
|
-
|
|
52
|
-
CompanyAddress: '13 Rudkin Court',
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
Account: 'Al Baarini Ahmad',
|
|
58
|
+
// CompanyAddress: '13 Rudkin Court',
|
|
59
|
+
Regbusinessaddresssuburb: 'Hoppers Crossing',
|
|
60
|
+
Regbusinessaddresspostcode: '3029',
|
|
61
|
+
// Phone: '0421 280 732',
|
|
62
|
+
// CompanyMobile: '0401 016 565',
|
|
63
|
+
// CompanyEmailDisp: 'CITYWIDEDEMOLITION@HOTMAIL.COM',
|
|
64
|
+
// CompanyWebURLDisp: 'www.citywidedemolition.com.au',
|
|
65
|
+
// ContactFirstName: 'Eman',
|
|
66
|
+
// ContactLastName: 'Al Baarini',
|
|
67
|
+
PrimaryContactAccountName: 'Eman Al Baarini',
|
|
68
|
+
// ContactPhoneDisp: '0421 280 732',
|
|
69
|
+
PrimaryContactEmail: 'CITYWIDEDEMOLITION@HOTMAIL.COM',
|
|
70
|
+
PrimaryContactMobile: '0421 280 732',
|
|
71
|
+
AsbestosClass: 'Class B - Non-friable',
|
|
72
|
+
// ServicesAll: 'All types of non-friable asbestos containing material (eg. cement sheeting or vinyl tiles)',
|
|
65
73
|
},
|
|
66
74
|
{
|
|
67
|
-
|
|
68
|
-
CompanyAddress: '17 Rohs Road',
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
Account: 'Ashcorp Holdings Pty Ltd',
|
|
76
|
+
// CompanyAddress: '17 Rohs Road',
|
|
77
|
+
Regbusinessaddresssuburb: 'EAST BENDIGO',
|
|
78
|
+
Regbusinessaddresspostcode: '3550',
|
|
79
|
+
// Phone: '(03) 5444 3261',
|
|
80
|
+
// CompanyMobile: '0409 012 780',
|
|
81
|
+
// CompanyEmailDisp: 'admin@ashworthdemolition.com.au',
|
|
82
|
+
// CompanyWebURLDisp: '',
|
|
83
|
+
// ContactFirstName: 'Dean',
|
|
84
|
+
// ContactLastName: 'Ashworth',
|
|
85
|
+
PrimaryContactAccountName: 'Dean Ashworth',
|
|
86
|
+
// ContactPhoneDisp: '(03) 5444 3261',
|
|
87
|
+
PrimaryContactEmail: 'info@ashworthdemolition.com.au',
|
|
88
|
+
PrimaryContactMobile: '0409012780',
|
|
89
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
90
|
+
// 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
91
|
},
|
|
82
92
|
{
|
|
83
|
-
|
|
84
|
-
CompanyAddress: 'Ventia - Cardinia Building, 25 Lucknow Street',
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
Account: 'Ventia Utility Services Pty Limited',
|
|
94
|
+
// CompanyAddress: 'Ventia - Cardinia Building, 25 Lucknow Street',
|
|
95
|
+
Regbusinessaddresssuburb: 'MITCHAM',
|
|
96
|
+
Regbusinessaddresspostcode: '3132',
|
|
97
|
+
// Phone: '0438531164',
|
|
98
|
+
// CompanyMobile: '',
|
|
99
|
+
// CompanyEmailDisp: 'daniel.dehaan@ventia.com',
|
|
100
|
+
// CompanyWebURLDisp: 'www.ventia.com.au',
|
|
101
|
+
// ContactFirstName: 'Daniel',
|
|
102
|
+
// ContactLastName: 'DeHaan',
|
|
103
|
+
PrimaryContactAccountName: 'Daniel DeHaan',
|
|
104
|
+
// ContactPhoneDisp: '0438531164',
|
|
105
|
+
PrimaryContactEmail: 'daniel.dehaan@ventia.com',
|
|
106
|
+
PrimaryContactMobile: '0438531164',
|
|
107
|
+
AsbestosClass: 'Class B - Non-friable',
|
|
108
|
+
// 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
109
|
},
|
|
98
110
|
{
|
|
99
|
-
|
|
100
|
-
CompanyAddress: '62 Webber Parade',
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
Account: 'ONE A.D.S Asbestos Removal Pty Ltd',
|
|
112
|
+
// CompanyAddress: '62 Webber Parade',
|
|
113
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
114
|
+
Regbusinessaddresspostcode: '3033',
|
|
115
|
+
// Phone: '0404073745',
|
|
116
|
+
// CompanyMobile: '0404 073 745',
|
|
117
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
118
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
119
|
+
// ContactFirstName: '',
|
|
120
|
+
// ContactLastName: '',
|
|
121
|
+
PrimaryContactAccountName: '',
|
|
122
|
+
// ContactPhoneDisp: '0404073745',
|
|
123
|
+
PrimaryContactEmail: 'ads.asbestos@gmail.com',
|
|
124
|
+
PrimaryContactMobile: '1300 064 277',
|
|
125
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
126
|
+
// 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
127
|
},
|
|
114
128
|
{
|
|
115
|
-
|
|
116
|
-
CompanyAddress: '62 Webber Parade',
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
Account: 'TWO A.D.S Asbestos Removal Pty Ltd',
|
|
130
|
+
// CompanyAddress: '62 Webber Parade',
|
|
131
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
132
|
+
Regbusinessaddresspostcode: '3033',
|
|
133
|
+
// Phone: '0404073745',
|
|
134
|
+
// CompanyMobile: '0404 073 745',
|
|
135
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
136
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
137
|
+
// ContactFirstName: 'Ivan',
|
|
138
|
+
// ContactLastName: 'Silva',
|
|
139
|
+
PrimaryContactAccountName: 'Ivan Silva',
|
|
140
|
+
// ContactPhoneDisp: '',
|
|
141
|
+
PrimaryContactEmail: 'ads.asbestos@gmail.com',
|
|
142
|
+
PrimaryContactMobile: '1300 064 277',
|
|
143
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
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.',
|
|
129
145
|
},
|
|
130
146
|
{
|
|
131
|
-
|
|
132
|
-
CompanyAddress: '62 Webber Parade',
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
147
|
+
Account: 'Three A.D.S Asbestos Removal Pty Ltd',
|
|
148
|
+
// CompanyAddress: '62 Webber Parade',
|
|
149
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
150
|
+
Regbusinessaddresspostcode: '3033',
|
|
151
|
+
// Phone: '0404073745',
|
|
152
|
+
// CompanyMobile: '0404 073 745',
|
|
153
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
154
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
155
|
+
// ContactFirstName: 'Ivan',
|
|
156
|
+
// ContactLastName: 'Silva',
|
|
157
|
+
PrimaryContactAccountName: 'Ivan Silva',
|
|
158
|
+
// ContactPhoneDisp: '0404073745',
|
|
159
|
+
PrimaryContactEmail: '',
|
|
160
|
+
PrimaryContactMobile: '1300 064 277',
|
|
161
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
162
|
+
// 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
163
|
},
|
|
146
164
|
{
|
|
147
|
-
|
|
148
|
-
CompanyAddress: '62 Webber Parade',
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
165
|
+
Account: 'FOUR A.D.S Asbestos Removal Pty Ltd',
|
|
166
|
+
// CompanyAddress: '62 Webber Parade',
|
|
167
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
168
|
+
Regbusinessaddresspostcode: '3033',
|
|
169
|
+
// Phone: '0404073745',
|
|
170
|
+
// CompanyMobile: '0404 073 745',
|
|
171
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
172
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
173
|
+
// ContactFirstName: 'Ivan',
|
|
174
|
+
// ContactLastName: 'Silva',
|
|
175
|
+
PrimaryContactAccountName: 'Ivan Silva',
|
|
176
|
+
// ContactPhoneDisp: '0404073745',
|
|
177
|
+
PrimaryContactEmail: 'ads.asbestos@gmail.com',
|
|
178
|
+
PrimaryContactMobile: '',
|
|
179
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
180
|
+
// 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
181
|
},
|
|
162
182
|
{
|
|
163
|
-
|
|
164
|
-
CompanyAddress: '62 Webber Parade',
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
183
|
+
Account: 'Five A.D.S Asbestos Removal Pty Ltd',
|
|
184
|
+
// CompanyAddress: '62 Webber Parade',
|
|
185
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
186
|
+
Regbusinessaddresspostcode: '3033',
|
|
187
|
+
// Phone: '0404073745',
|
|
188
|
+
// CompanyMobile: '0404 073 745',
|
|
189
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
190
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
191
|
+
// ContactFirstName: '',
|
|
192
|
+
// ContactLastName: '',
|
|
193
|
+
PrimaryContactAccountName: '',
|
|
194
|
+
// ContactPhoneDisp: '',
|
|
195
|
+
PrimaryContactEmail: '',
|
|
196
|
+
PrimaryContactMobile: '',
|
|
197
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
198
|
+
// 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
199
|
},
|
|
178
200
|
{
|
|
179
|
-
|
|
180
|
-
CompanyAddress: '62 Webber Parade',
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
201
|
+
Account: 'SIX A.D.S Asbestos Removal Pty Ltd',
|
|
202
|
+
// CompanyAddress: '62 Webber Parade',
|
|
203
|
+
Regbusinessaddresssuburb: 'KEILOR EAST',
|
|
204
|
+
Regbusinessaddresspostcode: '3033',
|
|
205
|
+
// Phone: '0404073745',
|
|
206
|
+
// CompanyMobile: '0404 073 745',
|
|
207
|
+
// CompanyEmailDisp: 'ads.asbestos@gmail.com',
|
|
208
|
+
// CompanyWebURLDisp: 'http://www.adsasbestosremoval.com.au',
|
|
209
|
+
// ContactFirstName: 'Ivan',
|
|
210
|
+
// ContactLastName: 'Silva',
|
|
211
|
+
PrimaryContactAccountName: 'Ivan Silva',
|
|
212
|
+
// ContactPhoneDisp: '0404073745',
|
|
213
|
+
PrimaryContactEmail: 'ads.asbestos@gmail.com',
|
|
214
|
+
PrimaryContactMobile: '1300 064 277',
|
|
215
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
216
|
+
// 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
217
|
},
|
|
194
218
|
{
|
|
195
|
-
|
|
196
|
-
CompanyAddress: '90 Marriage Lane',
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
219
|
+
Account: 'SSM Asbestos Removal Pty Ltd',
|
|
220
|
+
// CompanyAddress: '90 Marriage Lane',
|
|
221
|
+
Regbusinessaddresssuburb: 'HILLSIDE',
|
|
222
|
+
Regbusinessaddresspostcode: '3875',
|
|
223
|
+
// Phone: '0405 083 197',
|
|
224
|
+
// CompanyMobile: '0405 083 197',
|
|
225
|
+
// CompanyEmailDisp: 'steve@ssmasbestos.com.au',
|
|
226
|
+
// CompanyWebURLDisp: 'www.ssm-asbestosremoval.com',
|
|
227
|
+
// ContactFirstName: 'Steven',
|
|
228
|
+
// ContactLastName: 'McCarthy',
|
|
229
|
+
PrimaryContactAccountName: 'Steven McCarthy',
|
|
230
|
+
// ContactPhoneDisp: '0405 083 197',
|
|
231
|
+
PrimaryContactEmail: 'steve@ssmasbestos.com.au',
|
|
232
|
+
PrimaryContactMobile: '0405 083 197',
|
|
233
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
234
|
+
// ServicesAll: 'All types of Asbestos containing material (friable & non-friable)',
|
|
209
235
|
},
|
|
210
236
|
{
|
|
211
|
-
|
|
212
|
-
CompanyAddress: '165 Grevillea Drive',
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
237
|
+
Account: 'Golden Plains Asbestos PTY LTD',
|
|
238
|
+
// CompanyAddress: '165 Grevillea Drive',
|
|
239
|
+
Regbusinessaddresssuburb: 'ENFIELD',
|
|
240
|
+
Regbusinessaddresspostcode: '3352',
|
|
241
|
+
// Phone: '0450582103',
|
|
242
|
+
// CompanyMobile: '0450582103',
|
|
243
|
+
// CompanyEmailDisp: 'gpasbestos@outlook.com',
|
|
244
|
+
// CompanyWebURLDisp: '',
|
|
245
|
+
// ContactFirstName: 'Carlos',
|
|
246
|
+
// ContactLastName: 'Rios',
|
|
247
|
+
PrimaryContactAccountName: 'Carlos Rios',
|
|
248
|
+
// ContactPhoneDisp: '0450582103',
|
|
249
|
+
PrimaryContactEmail: 'gpasbestos@outlook.com',
|
|
250
|
+
PrimaryContactMobile: '0450582103',
|
|
251
|
+
AsbestosClass: 'Class A - Friable and non-friable',
|
|
252
|
+
// ServicesAll: 'All types of Asbestos containing material (friable & non-friable)',
|
|
225
253
|
}
|
|
226
254
|
]
|