@iamproperty/components 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +9 -130
  2. package/assets/css/core.min.css +1 -1
  3. package/assets/css/core.min.css.map +1 -1
  4. package/assets/css/style.min.css +1 -1
  5. package/assets/css/style.min.css.map +1 -1
  6. package/assets/favicons/manifest.json +32 -0
  7. package/assets/js/main.js +57 -0
  8. package/assets/js/modules/chart.js +18 -17
  9. package/assets/js/modules/nav.js +9 -8
  10. package/assets/js/modules/table.js +24 -24
  11. package/assets/js/scripts.bundle.js +20 -17
  12. package/assets/js/scripts.bundle.js.map +1 -1
  13. package/assets/js/scripts.bundle.min.js +1 -1
  14. package/assets/js/scripts.bundle.min.js.map +1 -1
  15. package/assets/sass/_functions/utilities.scss +3 -3
  16. package/assets/sass/_functions/variables.scss +3 -2
  17. package/assets/sass/_tests/colours.spec.scss +45 -0
  18. package/assets/sass/_tests/func.spec.scss +233 -0
  19. package/assets/sass/_tests/mixins.spec.scss +194 -0
  20. package/assets/sass/_tests/sass.spec.js +9 -0
  21. package/assets/sass/_tests/typography.spec.scss +36 -0
  22. package/assets/sass/components/alert.scss +1 -1
  23. package/assets/sass/components/cardDeck.scss +1 -1
  24. package/assets/sass/components/carousel.scss +4 -4
  25. package/assets/sass/components/charts.scss +1 -1
  26. package/assets/sass/components/nav.scss +5 -2
  27. package/assets/sass/components/stepper.scss +3 -3
  28. package/assets/sass/elements/panel.scss +3 -3
  29. package/assets/sass/elements/tooltips.scss +1 -1
  30. package/assets/sass/foundations/root.scss +4 -4
  31. package/assets/ts/main.js +57 -0
  32. package/assets/ts/main.js.map +1 -0
  33. package/assets/ts/main.ts +9 -9
  34. package/assets/ts/modules/accordion.js +33 -0
  35. package/assets/ts/modules/accordion.js.map +1 -0
  36. package/dist/components.es.js +2504 -0
  37. package/dist/components.umd.js +56 -3784
  38. package/dist/style.css +1 -0
  39. package/package.json +87 -87
  40. package/src/components/Accordion/Accordion.screenshot.vue +57 -0
  41. package/src/components/Accordion/Accordion.spec.js +63 -0
  42. package/src/components/Accordion/AccordionItem.vue +1 -1
  43. package/src/components/Accordion/__screenshots__/win32/laptop/Accordion.png +0 -0
  44. package/src/components/Accordion/__screenshots__/win32/mobile/Accordion.png +0 -0
  45. package/src/components/Accordion/__screenshots__/win32/tablet/Accordion.png +0 -0
  46. package/src/components/Alert/Alert.spec.js +49 -0
  47. package/src/components/Alert/Alert.vue +3 -3
  48. package/src/components/Banner/Banner.spec.js +28 -0
  49. package/src/components/CardDeck/CardDeck.spec.js +99 -0
  50. package/src/components/Carousel/Carousel.spec.js +45 -0
  51. package/src/components/Chart/Chart.spec.js +201 -0
  52. package/src/components/Chart/Chart.vue +3 -3
  53. package/src/components/Header/Header.spec.js +33 -0
  54. package/src/components/Modal/Modal.spec.js +22 -0
  55. package/src/components/Nav/Nav.spec.js +35 -0
  56. package/src/components/Nav/Nav.vue +5 -2
  57. package/src/components/Stepper/Stepper.spec.js +99 -0
  58. package/src/components/Tabs/Tab.vue +6 -0
  59. package/src/components/Tabs/Tabs.vue +15 -13
  60. package/src/components/Testimonial/Testimonial.spec.js +57 -0
  61. package/src/components/Timeline/Timeline.spec.js +17 -0
  62. package/src/elements/Table/Table.spec.js +90 -0
  63. package/src/elements/Table/Table.vue +8 -5
  64. package/src/foundations/Icon/Icon.spec.js +24 -0
  65. package/src/foundations/Logo/Logo.spec.js +56 -0
  66. package/src/vue-shim.d.ts +6 -0
  67. package/dist/components.common.js +0 -3773
  68. package/dist/components.common.js.map +0 -1
  69. package/dist/components.css +0 -2
  70. package/dist/components.css.map +0 -1
  71. package/dist/components.umd.js.map +0 -1
  72. package/dist/components.umd.min.js +0 -2
  73. package/dist/components.umd.min.js.map +0 -1
  74. package/dist/demo.html +0 -1
@@ -1,3784 +1,56 @@
1
- (function webpackUniversalModuleDefinition(root, factory) {
2
- if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory();
4
- else if(typeof define === 'function' && define.amd)
5
- define([], factory);
6
- else if(typeof exports === 'object')
7
- exports["components"] = factory();
8
- else
9
- root["components"] = factory();
10
- })((typeof self !== 'undefined' ? self : this), function() {
11
- return /******/ (function() { // webpackBootstrap
12
- /******/ var __webpack_modules__ = ({
13
-
14
- /***/ 679:
15
- /***/ (function(module, exports) {
16
-
17
- var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller
18
- // MIT license
19
- // source: https://github.com/amiller-gh/currentScript-polyfill
20
-
21
- // added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505
22
-
23
- (function (root, factory) {
24
- if (true) {
25
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
26
- __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
27
- (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
28
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
29
- } else {}
30
- }(typeof self !== 'undefined' ? self : this, function () {
31
- function getCurrentScript () {
32
- var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')
33
- // for chrome
34
- if (!descriptor && 'currentScript' in document && document.currentScript) {
35
- return document.currentScript
36
- }
37
-
38
- // for other browsers with native support for currentScript
39
- if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {
40
- return document.currentScript
41
- }
42
-
43
- // IE 8-10 support script readyState
44
- // IE 11+ & Firefox support stack trace
45
- try {
46
- throw new Error();
47
- }
48
- catch (err) {
49
- // Find the second match for the "at" string to get file src url from stack.
50
- var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig,
51
- ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig,
52
- stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),
53
- scriptLocation = (stackDetails && stackDetails[1]) || false,
54
- line = (stackDetails && stackDetails[2]) || false,
55
- currentLocation = document.location.href.replace(document.location.hash, ''),
56
- pageSource,
57
- inlineScriptSourceRegExp,
58
- inlineScriptSource,
59
- scripts = document.getElementsByTagName('script'); // Live NodeList collection
60
-
61
- if (scriptLocation === currentLocation) {
62
- pageSource = document.documentElement.outerHTML;
63
- inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*', 'i');
64
- inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();
65
- }
66
-
67
- for (var i = 0; i < scripts.length; i++) {
68
- // If ready state is interactive, return the script tag
69
- if (scripts[i].readyState === 'interactive') {
70
- return scripts[i];
71
- }
72
-
73
- // If src matches, return the script tag
74
- if (scripts[i].src === scriptLocation) {
75
- return scripts[i];
76
- }
77
-
78
- // If inline source matches, return the script tag
79
- if (
80
- scriptLocation === currentLocation &&
81
- scripts[i].innerHTML &&
82
- scripts[i].innerHTML.trim() === inlineScriptSource
83
- ) {
84
- return scripts[i];
85
- }
86
- }
87
-
88
- // If no match, return null
89
- return null;
90
- }
91
- };
92
-
93
- return getCurrentScript
94
- }));
95
-
96
-
97
- /***/ })
98
-
99
- /******/ });
100
- /************************************************************************/
101
- /******/ // The module cache
102
- /******/ var __webpack_module_cache__ = {};
103
- /******/
104
- /******/ // The require function
105
- /******/ function __webpack_require__(moduleId) {
106
- /******/ // Check if module is in cache
107
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
108
- /******/ if (cachedModule !== undefined) {
109
- /******/ return cachedModule.exports;
110
- /******/ }
111
- /******/ // Create a new module (and put it into the cache)
112
- /******/ var module = __webpack_module_cache__[moduleId] = {
113
- /******/ // no module.id needed
114
- /******/ // no module.loaded needed
115
- /******/ exports: {}
116
- /******/ };
117
- /******/
118
- /******/ // Execute the module function
119
- /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
120
- /******/
121
- /******/ // Return the exports of the module
122
- /******/ return module.exports;
123
- /******/ }
124
- /******/
125
- /************************************************************************/
126
- /******/ /* webpack/runtime/define property getters */
127
- /******/ !function() {
128
- /******/ // define getter functions for harmony exports
129
- /******/ __webpack_require__.d = function(exports, definition) {
130
- /******/ for(var key in definition) {
131
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
132
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
133
- /******/ }
134
- /******/ }
135
- /******/ };
136
- /******/ }();
137
- /******/
138
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
139
- /******/ !function() {
140
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
141
- /******/ }();
142
- /******/
143
- /******/ /* webpack/runtime/make namespace object */
144
- /******/ !function() {
145
- /******/ // define __esModule on exports
146
- /******/ __webpack_require__.r = function(exports) {
147
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
148
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
149
- /******/ }
150
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
151
- /******/ };
152
- /******/ }();
153
- /******/
154
- /******/ /* webpack/runtime/publicPath */
155
- /******/ !function() {
156
- /******/ __webpack_require__.p = "";
157
- /******/ }();
158
- /******/
159
- /************************************************************************/
160
- var __webpack_exports__ = {};
161
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
162
- !function() {
163
- "use strict";
164
- // ESM COMPAT FLAG
165
- __webpack_require__.r(__webpack_exports__);
166
-
167
- // EXPORTS
168
- __webpack_require__.d(__webpack_exports__, {
169
- "Accordion": function() { return /* reexport */ Accordion; },
170
- "AccordionItem": function() { return /* reexport */ AccordionItem; },
171
- "Alert": function() { return /* reexport */ Alert; },
172
- "Banner": function() { return /* reexport */ Banner; },
173
- "Card": function() { return /* reexport */ Card; },
174
- "CardDeck": function() { return /* reexport */ CardDeck; },
175
- "Carousel": function() { return /* reexport */ Carousel; },
176
- "Drawer": function() { return /* reexport */ Drawer; },
177
- "FileUploads": function() { return /* reexport */ FileUploads; },
178
- "Header": function() { return /* reexport */ Header; },
179
- "Icon": function() { return /* reexport */ Icon; },
180
- "Input": function() { return /* reexport */ Input; },
181
- "Logo": function() { return /* reexport */ Logo; },
182
- "Modal": function() { return /* reexport */ Modal; },
183
- "Nav": function() { return /* reexport */ Nav; },
184
- "NoteFeed": function() { return /* reexport */ NoteFeed; },
185
- "PropertySearchbar": function() { return /* reexport */ PropertySearchbar; },
186
- "Step": function() { return /* reexport */ Step; },
187
- "Stepper": function() { return /* reexport */ Stepper; },
188
- "Tab": function() { return /* reexport */ Tab; },
189
- "Table": function() { return /* reexport */ Table; },
190
- "Tabs": function() { return /* reexport */ Tabs; },
191
- "Testimonial": function() { return /* reexport */ Testimonial; }
192
- });
193
-
194
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
195
- /* eslint-disable no-var */
196
- // This file is imported into lib/wc client bundles.
197
-
198
- if (typeof window !== 'undefined') {
199
- var currentScript = window.document.currentScript
200
- if (true) {
201
- var getCurrentScript = __webpack_require__(679)
202
- currentScript = getCurrentScript()
203
-
204
- // for backward compatibility, because previously we directly included the polyfill
205
- if (!('currentScript' in document)) {
206
- Object.defineProperty(document, 'currentScript', { get: getCurrentScript })
207
- }
208
- }
209
-
210
- var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
211
- if (src) {
212
- __webpack_require__.p = src[1] // eslint-disable-line
213
- }
214
- }
215
-
216
- // Indicate to webpack that this file can be concatenated
217
- /* harmony default export */ var setPublicPath = (null);
218
-
219
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/foundations/Icon/Icon.vue?vue&type=template&id=213f3ef7&
220
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:"icon"},[_c('title',[_vm._v(_vm._s(_vm.id))]),_c('use',{attrs:{"xlink:href":_vm.path+'#icon-'+_vm.id}})])}
221
- var staticRenderFns = []
222
-
223
-
224
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/foundations/Icon/Icon.vue?vue&type=script&lang=js&
225
- //
226
- //
227
- //
228
- //
229
- //
230
- //
231
- //
232
- /* harmony default export */ var Iconvue_type_script_lang_js_ = ({
233
- name: 'Icon',
234
- props: {
235
- id: {
236
- type: String,
237
- required: false,
238
- default: 'email'
239
- },
240
- path: {
241
- type: String,
242
- required: false,
243
- default: '/svg/icons.svg'
244
- }
245
- }
246
- });
247
- ;// CONCATENATED MODULE: ./src/foundations/Icon/Icon.vue?vue&type=script&lang=js&
248
- /* harmony default export */ var Icon_Iconvue_type_script_lang_js_ = (Iconvue_type_script_lang_js_);
249
- ;// CONCATENATED MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
250
- /* globals __VUE_SSR_CONTEXT__ */
251
-
252
- // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
253
- // This module is a runtime utility for cleaner component module output and will
254
- // be included in the final webpack user bundle.
255
-
256
- function normalizeComponent (
257
- scriptExports,
258
- render,
259
- staticRenderFns,
260
- functionalTemplate,
261
- injectStyles,
262
- scopeId,
263
- moduleIdentifier, /* server only */
264
- shadowMode /* vue-cli only */
265
- ) {
266
- // Vue.extend constructor export interop
267
- var options = typeof scriptExports === 'function'
268
- ? scriptExports.options
269
- : scriptExports
270
-
271
- // render functions
272
- if (render) {
273
- options.render = render
274
- options.staticRenderFns = staticRenderFns
275
- options._compiled = true
276
- }
277
-
278
- // functional template
279
- if (functionalTemplate) {
280
- options.functional = true
281
- }
282
-
283
- // scopedId
284
- if (scopeId) {
285
- options._scopeId = 'data-v-' + scopeId
286
- }
287
-
288
- var hook
289
- if (moduleIdentifier) { // server build
290
- hook = function (context) {
291
- // 2.3 injection
292
- context =
293
- context || // cached call
294
- (this.$vnode && this.$vnode.ssrContext) || // stateful
295
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
296
- // 2.2 with runInNewContext: true
297
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
298
- context = __VUE_SSR_CONTEXT__
299
- }
300
- // inject component styles
301
- if (injectStyles) {
302
- injectStyles.call(this, context)
303
- }
304
- // register component module identifier for async chunk inferrence
305
- if (context && context._registeredComponents) {
306
- context._registeredComponents.add(moduleIdentifier)
307
- }
308
- }
309
- // used by ssr in case component is cached and beforeCreate
310
- // never gets called
311
- options._ssrRegister = hook
312
- } else if (injectStyles) {
313
- hook = shadowMode
314
- ? function () {
315
- injectStyles.call(
316
- this,
317
- (options.functional ? this.parent : this).$root.$options.shadowRoot
318
- )
319
- }
320
- : injectStyles
321
- }
322
-
323
- if (hook) {
324
- if (options.functional) {
325
- // for template-only hot-reload because in that case the render fn doesn't
326
- // go through the normalizer
327
- options._injectStyles = hook
328
- // register for functional component in vue file
329
- var originalRender = options.render
330
- options.render = function renderWithStyleInjection (h, context) {
331
- hook.call(context)
332
- return originalRender(h, context)
333
- }
334
- } else {
335
- // inject component registration as beforeCreate hook
336
- var existing = options.beforeCreate
337
- options.beforeCreate = existing
338
- ? [].concat(existing, hook)
339
- : [hook]
340
- }
341
- }
342
-
343
- return {
344
- exports: scriptExports,
345
- options: options
346
- }
347
- }
348
-
349
- ;// CONCATENATED MODULE: ./src/foundations/Icon/Icon.vue
350
-
351
-
352
-
353
-
354
-
355
- /* normalize component */
356
- ;
357
- var component = normalizeComponent(
358
- Icon_Iconvue_type_script_lang_js_,
359
- render,
360
- staticRenderFns,
361
- false,
362
- null,
363
- null,
364
- null
365
-
366
- )
367
-
368
- /* harmony default export */ var Icon = (component.exports);
369
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/foundations/Logo/Logo.vue?vue&type=template&id=53bcaaa2&
370
- var Logovue_type_template_id_53bcaaa2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.className},[_c('svg',[_c('title',[_vm._v("iam "+_vm._s(_vm.id))]),_c('use',{attrs:{"xlink:href":_vm.path+_vm.src}})]),(_vm.desc)?_c('span',{domProps:{"innerHTML":_vm._s(_vm.desc)}}):_vm._e()])}
371
- var Logovue_type_template_id_53bcaaa2_staticRenderFns = []
372
-
373
-
374
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/foundations/Logo/Logo.vue?vue&type=script&lang=js&
375
- //
376
- //
377
- //
378
- //
379
- //
380
- //
381
- //
382
- //
383
- //
384
- /* harmony default export */ var Logovue_type_script_lang_js_ = ({
385
- name: 'Logo',
386
- props: {
387
- id: {
388
- type: String,
389
- required: false,
390
- default: 'property'
391
- },
392
- path: {
393
- type: String,
394
- required: false,
395
- default: '/svg/logo.svg'
396
- },
397
- desc: {
398
- type: String
399
- }
400
- },
401
- computed: {
402
- src: function src() {
403
- // `this` points to the vm instance
404
- return '#logo-' + this.id;
405
- },
406
- className: function className() {
407
- // `this` points to the vm instance
408
- return 'brand brand--' + this.id;
409
- }
410
- }
411
- });
412
- ;// CONCATENATED MODULE: ./src/foundations/Logo/Logo.vue?vue&type=script&lang=js&
413
- /* harmony default export */ var Logo_Logovue_type_script_lang_js_ = (Logovue_type_script_lang_js_);
414
- ;// CONCATENATED MODULE: ./src/foundations/Logo/Logo.vue
415
-
416
-
417
-
418
-
419
-
420
- /* normalize component */
421
- ;
422
- var Logo_component = normalizeComponent(
423
- Logo_Logovue_type_script_lang_js_,
424
- Logovue_type_template_id_53bcaaa2_render,
425
- Logovue_type_template_id_53bcaaa2_staticRenderFns,
426
- false,
427
- null,
428
- null,
429
- null
430
-
431
- )
432
-
433
- /* harmony default export */ var Logo = (Logo_component.exports);
434
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Table/Table.vue?vue&type=template&id=1a479115&
435
- var Tablevue_type_template_id_1a479115_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"table__wrapper",attrs:{"data-sortby":_vm.sortby,"data-sort":_vm.sort,"data-show":_vm.show,"data-page":_vm.page,"data-reorder":_vm.reorder}},[_c('table',[(_vm.fields)?_c('thead',[_c('tr',{class:_vm.headingclass},_vm._l((_vm.fields),function(field){return _c('th',{key:field.key,attrs:{"data-sortable":field.sortable,"data-filterable":field.filterable}},[_vm._v(_vm._s(_vm.cellHeading(field.key)))])}),0)]):_vm._e(),(_vm.items)?_c('tbody',_vm._l((_vm.items),function(value,index){return _c('tr',{key:index,attrs:{"data-row-id":value['rowid']}},_vm._l((Object.fromEntries(Object.entries(value).filter(function (ref) {
436
- var key = ref[0];
437
-
438
- return key !== 'rowid';
439
- }))),function(cellValue,cellIndex){return _c('td',{key:cellIndex,attrs:{"data-label":_vm.cellHeading(cellIndex),"data-numeric":_vm.numericValue(cellValue)},domProps:{"innerHTML":_vm._s(cellValue)}})}),0)}),0):_vm._e()]),_vm._t("default")],2)}
440
- var Tablevue_type_template_id_1a479115_staticRenderFns = []
441
-
442
-
443
- ;// CONCATENATED MODULE: ./src/helpers/strings.js
444
- var ucfirst = str => str.charAt(0).toUpperCase() + str.slice(1);
445
- var ucwords = str => str.split(' ').map(s => ucfirst(s)).join(' ');
446
- var unsnake = str => str.replace(/_/g, ' ');
447
- var snake = str => str.replace(/ /g, '_');
448
- var safeID = function safeID(str) {
449
- str = str.toLowerCase();
450
- str = snake(str);
451
- str = str.replace(/\W/g, '');
452
- return str;
453
- };
454
- ;// CONCATENATED MODULE: ./assets/js/modules/helpers.js
455
- /**
456
- * Global helper functions to help maintain and enhance framework elements.
457
- * @module Helpers
458
- */
459
-
460
- /**
461
- * Add global classes used by the CSS and later JavaScript.
462
- * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
463
- */
464
- var addBodyClasses = body => {
465
- body.classList.add("js-enabled");
466
-
467
- if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
468
- body.classList.add("ie");
469
- }
470
-
471
- return null;
472
- };
473
- /**
474
- * Add global events.
475
- * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
476
- */
477
-
478
- var addGlobalEvents = body => {
479
- window.addEventListener('hashchange', function () {
480
- var hash = location.hash.replace('#', '');
481
- var label = document.querySelector("label[for=\"".concat(hash, "\"]"));
482
- var detail = document.querySelector("details[id=\"".concat(hash, "\"]:not([open])"));
483
- if (label) label.click();else if (detail) detail.setAttribute('open', 'open');
484
- }, false);
485
- return null;
486
- };
487
- /**
488
- * Check if an element contains certain elements that needs enhancing with the JavaScript helpers, it is recommended to do this on the page body after the dom is loaded. Elements that are loaded via ajax should also run this function.
489
- * @param {HTMLElement} element Dom element, this doesn't have to be the body but it is recommended.
490
- */
491
-
492
- var checkElements = element => {
493
- // Tables
494
- Array.from(element.querySelectorAll('table')).forEach((table, index) => {
495
- tableStacked(table);
496
- tableWrap(table);
497
- });
498
- };
499
- /**
500
- * Wrap tables with a table wrapper div to help maintain its responsive design.
501
- * @param {HTMLElement} table Dom table element
502
- */
503
-
504
- var tableWrap = table => {
505
- if (!table.parentNode.classList.contains('table__wrapper')) {
506
- var tableHTML = table.outerHTML;
507
- table.outerHTML = "<div class=\"table__wrapper\">".concat(tableHTML, "</div>");
508
- }
509
- };
510
- /**
511
- * Creates data attributes to be used by the CSS for mobile views.
512
- * @param {HTMLElement} table Dom table element
513
- */
514
-
515
- var tableStacked = table => {
516
- var colHeadings = Array.from(table.querySelectorAll('thead th'));
517
- var colRows = Array.from(table.querySelectorAll('tbody tr'));
518
- colRows.forEach((row, index) => {
519
- var cells = Array.from(row.querySelectorAll('th, td'));
520
- cells.forEach((cell, cellIndex) => {
521
- var heading = colHeadings[cellIndex];
522
-
523
- if (typeof heading != "undefined") {
524
- var tempDiv = document.createElement("div");
525
- tempDiv.innerHTML = heading.innerHTML;
526
- var headingText = tempDiv.textContent || tempDiv.innerText || "";
527
- cell.setAttribute('data-label', headingText);
528
- }
529
- });
530
- });
531
- };
532
- var isNumeric = function isNumeric(str) {
533
- if (typeof str != "string") return false; // we only process strings!
534
-
535
- return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
536
- !isNaN(parseFloat(str)); // ...and ensure strings of whitespace fail
537
- };
538
- var zeroPad = (num, places) => String(num).padStart(places, '0');
539
- var helpers_ucfirst = str => str.charAt(0).toUpperCase() + str.slice(1);
540
- var helpers_ucwords = str => str.split(' ').map(s => helpers_ucfirst(s)).join(' ');
541
- var helpers_unsnake = str => str.replace(/_/g, ' ');
542
- var helpers_snake = str => str.replace(/ /g, '_');
543
- var helpers_safeID = function safeID(str) {
544
- str = str.toLowerCase();
545
- str = helpers_snake(str);
546
- str = str.replace(/\W/g, '');
547
- return str;
548
- };
549
- ;// CONCATENATED MODULE: ./assets/js/modules/table.js
550
-
551
-
552
- function table(tableElement) {
553
- if (typeof tableElement != "object") return false;
554
- var thead = tableElement.querySelector('thead');
555
- var tbody = tableElement.querySelector('tbody');
556
- var storedData = tbody.cloneNode(true);
557
- var sortedEvent = new Event('sorted');
558
- var filteredEvent = new Event('filtered');
559
- var reorderedEvent = new Event('reordered');
560
- var randID = 'table_' + Math.random().toString(36).substr(2, 9); // Random to make sure IDs created are unique
561
-
562
- var draggedRow;
563
- tableElement.setAttribute('id', randID); // #region Sortable
564
-
565
- var sortTable = function sortTable(sortBy, sort) {
566
- // Create an array from the table rows, the index created is then used to sort the array
567
- var tableArr = [];
568
- Array.from(tbody.querySelectorAll('tr')).forEach((tableRow, index) => {
569
- var rowIndex = tableRow.querySelector('td[data-label="' + sortBy + '"], th[data-label="' + sortBy + '"]').textContent;
570
- if (isNumeric(rowIndex)) rowIndex = zeroPad(rowIndex, 10);
571
- var dataRow = {
572
- index: rowIndex,
573
- row: tableRow
574
- };
575
- tableArr.push(dataRow);
576
- }); // Sort array
577
-
578
- tableArr.sort((a, b) => a.index > b.index ? 1 : -1); // Reverse if descending
579
-
580
- if (sort == "descending") tableArr = tableArr.reverse(); // Create a string to return and populate the tbody
581
-
582
- var strTbody = '';
583
- tableArr.forEach((tableRow, index) => {
584
- strTbody += tableRow.row.outerHTML;
585
- });
586
- tbody.innerHTML = strTbody; // Dispatch the sortable event
587
-
588
- tableElement.dispatchEvent(sortedEvent);
589
- }; // Declare event handlers
590
-
591
-
592
- tableElement.addEventListener('click', function (e) {
593
- for (var target = e.target; target && target != this; target = target.parentNode) {
594
- if (target.matches('[data-sortable]')) {
595
- // Get current sort order
596
- var sort = target.getAttribute('aria-sort') == "ascending" ? "descending" : "ascending"; // unset sort attributes
597
-
598
- Array.from(tableElement.querySelectorAll('[data-sortable]')).forEach((col, index) => {
599
- col.setAttribute('aria-sort', 'none');
600
- }); // Set the sort order attribute
601
-
602
- target.setAttribute('aria-sort', sort); // Save the sort options on the table element so that it can be re-sorted later
603
-
604
- tableElement.setAttribute('data-sort', sort);
605
- tableElement.setAttribute('data-sortBy', target.textContent); // Sort the table
606
-
607
- sortTable(target.textContent, sort);
608
- Array.from(tableElement.querySelectorAll('tr[draggable]')).forEach((tableRow, index) => {
609
- tableRow.removeAttribute('draggable');
610
- });
611
- break;
612
- }
613
- }
614
- }, false); // On page load check if the table should be pre-sorted, if so trigger a click
615
-
616
- if (tableElement.getAttribute('data-sortBy')) {
617
- var sort = tableElement.getAttribute('data-sort') == "ascending" ? "descending" : "ascending";
618
- Array.from(tableElement.querySelectorAll('[data-sortable]')).forEach((col, index) => {
619
- if (col.textContent == tableElement.getAttribute('data-sortBy')) {
620
- col.setAttribute('aria-sort', sort);
621
- col.click();
622
- }
623
- });
624
- } // #endregion Sortable
625
- // #region Filters
626
-
627
-
628
- var createFilterForm = function createFilterForm(count) {
629
- // Create wrapper div
630
- var form = document.createElement("div");
631
- form.classList.add('table__filters');
632
- form.classList.add('row');
633
- form.classList.add('pt-1');
634
- form.classList.add('pb-3'); // Create the filter options array
635
-
636
- var filterColumns = Array.from(tableElement.querySelectorAll('th[data-filterable]')); // Populate a list of searchable terms from the cells of the columns that could be used as a filter
637
-
638
- var searchableTerms = {};
639
- filterColumns.forEach((columnHeading, index) => {
640
- Array.from(tableElement.querySelectorAll('td[data-label="' + columnHeading.textContent + '"]')).forEach((label, index) => {
641
- searchableTerms[label.textContent] = label.textContent;
642
- });
643
- }); // Create the form
644
-
645
- var filterTitle = filterColumns.length == 1 ? "Filter by " + filterColumns[0].textContent : "Filter"; // Update title if only one filter is chosen
646
-
647
- var checkboxClass = filterColumns.length == 1 ? "d-none" : "d-sm-flex"; // Hide controls when only one filter is chosen
648
-
649
- form.innerHTML = "<div class=\"col-sm-6 col-md-4 pb-3\">\n <div class=\"form-control__wrapper form-control-inline mb-0\">\n <label for=\"".concat(randID, "_filter\" class=\"form-label\">").concat(filterTitle, ":</label>\n <input type=\"search\" name=\"").concat(randID, "_filter\" id=\"").concat(randID, "_filter\" class=\"form-control form-control-sm\" placeholder=\"\" list=\"").concat(randID, "_list\" />\n </div>\n <datalist id=\"").concat(randID, "_list\">\n ").concat(Object.keys(searchableTerms).map(term => "<option value=\"".concat(term, "\"></option>")).join(""), "\n </datalist>\n</div>\n<div class=\"col-md-8 align-items-center pb-3 ").concat(checkboxClass, "\">\n ").concat("<span class=\"pe-3 text-nowrap h5 mb-0\">Filter by: </span>" + filterColumns.map(column => "<div class=\"form-check pe-3 mt-0 mb-0\"><input class=\"form-check-input\" type=\"checkbox\" id=\"".concat(randID, "_").concat(column.textContent.replace(' ', '_').toLowerCase(), "\" checked=\"checked\" /><label class=\"form-check-label text-nowrap\" for=\"").concat(randID, "_").concat(column.textContent.replace(' ', '_').toLowerCase(), "\">").concat(column.textContent, "</label></div>")).join(""), "\n</div>"); // Add before the actual table
650
-
651
- tableElement.prepend(form);
652
- };
653
-
654
- var filterTable = function filterTable(searchTerm) {
655
- // Create an array of rows that match the search term
656
- var tableArr = [];
657
- Array.from(storedData.querySelectorAll('tr')).forEach((tableRow, index) => {
658
- // We want one long search string per row including each filterable table cell
659
- var rowSearchString = '';
660
- Array.from(tableElement.querySelectorAll('[type="checkbox"]:checked + label')).forEach((label, index) => {
661
- rowSearchString += tableRow.querySelector('td[data-label="' + label.textContent + '"]').textContent + ' | ';
662
- }); // Check if the table row search string contains the search term
663
-
664
- if (rowSearchString.indexOf(searchTerm) >= 0) {
665
- var dataRow = {
666
- row: tableRow
667
- };
668
- tableArr.push(dataRow);
669
- }
670
- }); // Create a string to return and populate the tbody
671
-
672
- var strTbody = '';
673
- tableArr.forEach((tableRow, index) => {
674
- strTbody += tableRow.row.outerHTML;
675
- });
676
- tbody.innerHTML = strTbody; // Dispatch the filter event.
677
-
678
- tableElement.dispatchEvent(filteredEvent);
679
- };
680
-
681
- var createFilterList = function createFilterList() {
682
- // Check which options are checked
683
- var filterOptions = [];
684
- Array.from(tableElement.querySelectorAll('[type="checkbox"]:checked + label')).forEach((label, index) => {
685
- filterOptions.push(label.textContent);
686
- }); // Build up the list of searchable terms
687
-
688
- var searchableTerms = [];
689
- filterOptions.forEach((option, index) => {
690
- Array.from(tableElement.querySelectorAll('td[data-label="' + option + '"]')).forEach((label, index) => {
691
- searchableTerms[label.textContent] = label.textContent;
692
- });
693
- }); // Rebuild the list
694
-
695
- var dataList = tableElement.querySelector('datalist');
696
- dataList.innerHTML = Object.keys(searchableTerms).map(term => "<option value=\"".concat(term, "\"></option>")).join("");
697
- }; // On page load check if filters are needed
698
-
699
-
700
- if (Array.from(tableElement.querySelectorAll('[data-filterable]')).length) {
701
- // Create the filter options
702
- createFilterForm(tableElement, Array.from(tableElement.querySelectorAll('[data-filterable]')).length); // Add event handlers for the filter options
703
-
704
- tableElement.addEventListener('keyup', function (e) {
705
- for (var target = e.target; target && target != this; target = target.parentNode) {
706
- if (target.matches('input[type="search"]')) {
707
- var searchTerm = target.value;
708
- filterTable(searchTerm);
709
- }
710
- }
711
- });
712
- tableElement.addEventListener('change', function (e) {
713
- for (var target = e.target; target && target != this; target = target.parentNode) {
714
- if (target.matches('input[type="search"]')) {
715
- var searchTerm = target.value;
716
- filterTable(searchTerm);
717
- }
718
- }
719
- });
720
- tableElement.addEventListener('change', function (e) {
721
- for (var target = e.target; target && target != this; target = target.parentNode) {
722
- if (target.matches('input[type="checkbox"]')) {
723
- var searchTerm = tableElement.querySelector('input[type="search"]').value;
724
- filterTable(searchTerm);
725
- createFilterList();
726
- }
727
- }
728
- });
729
- } // #endregion Filters
730
- // #region Pagination
731
-
732
-
733
- var paginateRows = function paginateRows(show, page) {
734
- // Create some inline CSS to control what is viewed on the table, unline the filters we are just hiding the rable rows not removing them from the DOM.
735
- var style = document.getElementById(randID + '_style');
736
-
737
- if (style == null) {
738
- style = document.createElement("style");
739
- style.setAttribute('id', randID + '_style');
740
- }
741
-
742
- var startShowing = show * (page - 1) + 1;
743
- var stopShowing = show * page;
744
- style.innerHTML = "\n #".concat(randID, " tbody tr {\n display: none;\n }\n #").concat(randID, " tbody tr:nth-child(").concat(startShowing, "),\n #").concat(randID, " tbody tr:nth-child(").concat(startShowing, ") ~ tr{\n display: block;\n }\n @media screen and (min-width: 36em) {\n #").concat(randID, " tbody tr:nth-child(").concat(startShowing, "),\n #").concat(randID, " tbody tr:nth-child(").concat(startShowing, ") ~ tr{\n display: table-row;\n }\n }\n #").concat(randID, " tbody tr:nth-child(").concat(stopShowing, ") ~ tr{\n display: none;\n }\n ");
745
- tableElement.append(style);
746
- }; // On page load check if the table should be paginated
747
-
748
-
749
- if (tableElement.getAttribute('data-show')) {
750
- var show = parseInt(tableElement.getAttribute('data-show'));
751
- var page = parseInt(tableElement.getAttribute('data-page')) ? parseInt(tableElement.getAttribute('data-page')) : 1;
752
- var totalRows = tableElement.querySelectorAll('tbody tr').length;
753
-
754
- if (show < totalRows) {
755
- paginateRows(show, page);
756
- createPaginationForm(randID, tableElement, show, page, totalRows);
757
- createPaginationButttons(randID, tableElement, show, page, totalRows);
758
- tableElement.addEventListener('change', function (e) {
759
- for (var target = e.target; target && target != this; target = target.parentNode) {
760
- if (target.matches('.table__pagination input[type="number"]')) {
761
- paginateRows(target.value, page);
762
- createPaginationButttons(randID, tableElement, target.value, page, totalRows);
763
- tableElement.setAttribute('data-show', target.value);
764
- }
765
- }
766
- });
767
- tableElement.addEventListener('click', function (e) {
768
- for (var target = e.target; target && target != this; target = target.parentNode) {
769
- if (target.matches('.page-item:not(.active):not(.disabled) .page-link')) {
770
- paginateRows(tableElement.getAttribute('data-show'), target.getAttribute('data-page'));
771
- createPaginationButttons(randID, tableElement, tableElement.getAttribute('data-show'), target.getAttribute('data-page'), totalRows);
772
- }
773
- }
774
- }, false);
775
- tableElement.addEventListener('change', function (e) {
776
- for (var target = e.target; target && target != this; target = target.parentNode) {
777
- if (target.matches('.table__pagination select')) {
778
- paginateRows(tableElement.getAttribute('data-show'), target.value);
779
- createPaginationButttons(randID, tableElement, tableElement.getAttribute('data-show'), target.value, totalRows);
780
- }
781
- }
782
- });
783
- }
784
- } // #endregion Pagination
785
- // #region Reorderable
786
- // Set the row thats being dragged and copy the row
787
-
788
-
789
- function setDraggedRow(e) {
790
- e.dataTransfer.setData("text/plain", e.target.id);
791
- draggedRow = e.target;
792
- e.target.classList.add('tr--dragging');
793
- } // Create the order column and event handler for rows
794
-
795
-
796
- var setReorderRows = function setReorderRows() {
797
- Array.from(tbody.querySelectorAll('tr')).forEach((tableRow, index) => {
798
- // Create column if not already created
799
- if (tableRow.querySelector('[data-label="Order"]') == null) {
800
- var orderColumn = document.createElement('th');
801
- orderColumn.innerHTML = index + 1;
802
- orderColumn.setAttribute('data-label', 'Order');
803
- tableRow.prepend(orderColumn);
804
- } // Make draggable
805
-
806
-
807
- tableRow.setAttribute('id', randID + '_row_' + (index + 1));
808
- tableRow.setAttribute('data-order', index + 1);
809
- tableRow.setAttribute('draggable', 'true');
810
- tableRow.addEventListener("dragstart", setDraggedRow);
811
- });
812
- };
813
-
814
- if (tableElement.getAttribute('data-reorder')) {
815
- // Add column heading
816
- var orderHeading = document.createElement('th');
817
- orderHeading.innerHTML = 'Order';
818
- orderHeading.title = 'Click here to enable re-ordering via drag and drop';
819
- orderHeading.classList.add('table-order-reset');
820
- thead.querySelector('tr').prepend(orderHeading);
821
- setReorderRows(); // Reset order button
822
-
823
- tableElement.addEventListener('click', function (e) {
824
- for (var target = e.target; target && target != this; target = target.parentNode) {
825
- if (target.matches('.table-order-reset')) {
826
- // unset sort attributes
827
- Array.from(tableElement.querySelectorAll('[data-sortable]')).forEach((col, index) => {
828
- col.setAttribute('aria-sort', 'none');
829
- }); // Save the sort options on the table element so that it can be re-sorted later
830
-
831
- tableElement.removeAttribute('data-sort');
832
- tableElement.removeAttribute('data-sortBy'); // Sort the table
833
-
834
- sortTable('Order', 'ascending');
835
- Array.from(tableElement.querySelectorAll('tbody tr')).forEach((tableRow, index) => {
836
- tableRow.setAttribute('draggable', 'true');
837
- });
838
- break;
839
- }
840
- }
841
- }, false);
842
- document.addEventListener("dragover", function (e) {
843
- // prevent default to allow drop
844
- e.preventDefault();
845
- }, false);
846
- document.addEventListener("dragenter", function (e) {
847
- // prevent default to allow drop
848
- e.preventDefault();
849
- e.dataTransfer.dropEffect = "move";
850
-
851
- for (var target = e.target; target && target != this; target = target.parentNode) {
852
- if (target.matches('[data-reorder] tbody tr')) {
853
- target.classList.add('tr--dropable');
854
- }
855
- }
856
- }, false);
857
- document.addEventListener("dragleave", function (e) {
858
- // prevent default to allow drop
859
- e.preventDefault();
860
-
861
- for (var target = e.target; target && target != this; target = target.parentNode) {
862
- if (target.matches('[data-reorder] tbody tr')) {
863
- target.classList.remove('tr--dropable');
864
- }
865
- }
866
- }, false);
867
- document.addEventListener("drop", function (e) {
868
- e.preventDefault();
869
-
870
- for (var target = e.target; target && target != this; target = target.parentNode) {
871
- if (target.matches('[data-reorder] tbody tr')) {
872
- if (target.parentNode != null && draggedRow.parentNode != null && target != draggedRow) {
873
- draggedRow.parentNode.removeChild(draggedRow);
874
- if (draggedRow.getAttribute('data-order') > target.getAttribute('data-order')) target.parentNode.insertBefore(draggedRow, target);else target.parentNode.insertBefore(draggedRow, target.nextElementSibling); // Re label the rows
875
-
876
- Array.from(tbody.querySelectorAll('tr')).forEach((tableRowOrder, index) => {
877
- tableRowOrder.classList.remove('tr--dragging');
878
- tableRowOrder.classList.remove('tr--dropable');
879
- tableRowOrder.querySelector('th').innerHTML = index + 1;
880
- tableRowOrder.setAttribute('data-order', index + 1);
881
- });
882
- tableElement.dispatchEvent(reorderedEvent);
883
- }
884
-
885
- break;
886
- }
887
- }
888
- }, false);
889
- } // #endregion Reorderable
890
- // Watch for the filterable event and re-sort the tbody
891
-
892
-
893
- tableElement.addEventListener('filtered', function (e) {
894
- if (tableElement.getAttribute('data-sortBy') && tableElement.getAttribute('data-sort')) sortTable(tableElement.getAttribute('data-sortBy'), tableElement.getAttribute('data-sort'));
895
-
896
- if (tableElement.getAttribute('data-show')) {
897
- var _show = parseInt(tableElement.getAttribute('data-show'));
898
-
899
- var _totalRows = tableElement.querySelectorAll('tbody tr').length;
900
- var tablePagination = tableElement.querySelector('.table__pagination');
901
- if (tablePagination != null) tablePagination.remove();
902
-
903
- if (_show < _totalRows) {
904
- paginateRows(_show, 1);
905
- createPaginationForm(randID, tableElement, _show, 1, _totalRows);
906
- createPaginationButttons(randID, tableElement, _show, 1, _totalRows);
907
- }
908
- }
909
-
910
- if (tableElement.getAttribute('data-reorder')) {
911
- setReorderRows();
912
- }
913
- }, false);
914
- tableElement.addEventListener('sorted', function (e) {
915
- if (tableElement.getAttribute('data-reorder')) {
916
- setReorderRows();
917
- }
918
- }, false);
919
- tableElement.addEventListener('populated', function (e) {
920
- var tableFilter = tableElement.querySelector('.table__filters');
921
- tableFilter.remove();
922
- var tablePagination = tableElement.querySelector('.table__pagination');
923
- tablePagination.remove();
924
- var newTable = tableElement.cloneNode(true);
925
- tableElement.parentNode.replaceChild(newTable, tableElement);
926
- table(newTable);
927
- }, false);
928
- }
929
-
930
- var createPaginationForm = function createPaginationForm(randID, tableElement, show, page, totalRows) {
931
- var form = document.createElement("div");
932
- form.classList.add('table__pagination');
933
- form.classList.add('row');
934
- form.classList.add('pt-3');
935
- form.classList.add('pb-3'); // Create the form and create a container div to hold the pagination buttons
936
-
937
- form.innerHTML = "<div class=\"col mw-fit-content mb-3\">\n<div class=\"form-control__wrapper form-control-inline mb-0\">\n <label for=\"".concat(randID, "_showing\" class=\"form-label\">Showing:</label>\n <input type=\"number\" name=\"").concat(randID, "_showing\" id=\"").concat(randID, "_showing\" class=\"form-control form-control-sm showing-input-field\" placeholder=\"\" list=\"").concat(randID, "_pagination\" value=\"").concat(show, "\" min=\"1\" max=\"").concat(totalRows, "\" />\n</div>\n<datalist id=\"").concat(randID, "_pagination\">\n<option value=\"5\">5</option>\n").concat(totalRows > 10 ? "<option value=\"10\">10</option>" : '', "\n").concat(totalRows > 20 ? "<option value=\"20\">20</option>" : '', "\n<option value=\"").concat(totalRows, "\">").concat(totalRows, "</option>\n</datalist>\n</div>\n<div class=\"col mw-fit-content me-auto d-flex align-items-center mb-3\"><span class=\"label\">per page</span></div>\n<div class=\"col mw-fit-content d-sm-flex justify-content-end align-items-center\" id=\"").concat(randID, "_paginationBtns\"></div>"); // Add after the actual table
938
-
939
- tableElement.append(form);
940
- };
941
- var createPaginationButttons = function createPaginationButttons(randID, tableElement, show, page, totalRows) {
942
- var paginationButtonsWrapper = document.getElementById(randID + '_paginationBtns');
943
- if (paginationButtonsWrapper == null) return false;
944
- var numberPages = Math.ceil(totalRows / show);
945
-
946
- if (numberPages == 1) {
947
- // Remore the buttons or dont display any if we dont need them
948
- paginationButtonsWrapper.innerHTML = '';
949
- } else if (numberPages < 5) {
950
- // If less than 5 pages (which fits comfortably on mobile) we display buttons
951
- var strButtons = '';
952
-
953
- for (var i = 1; i <= numberPages; i++) {
954
- if (i == page) strButtons += "<li class=\"page-item active\" aria-current=\"page\"><span class=\"page-link\">".concat(i, "</span></li>");else strButtons += "<li class=\"page-item\"><button class=\"page-link\" data-page=\"".concat(i, "\">").concat(i, "</button></li>");
955
- }
956
-
957
- paginationButtonsWrapper.innerHTML = "<span class=\"pe-2 mb-3\">Page: </span><ul class=\"pagination mb-3\">\n ".concat(page == 1 ? "<li class=\"page-item disabled\"><span class=\"page-link\">Previous</span></li>" : "<li class=\"page-item\"><button class=\"page-link\" data-page=\"".concat(parseInt(page) - 1, "\">Previous</button></li>"), "\n ").concat(strButtons, "\n ").concat(page == numberPages ? "<li class=\"page-item disabled\"><span class=\"page-link\">Next</span></li>" : "<li class=\"page-item\"><button class=\"page-link\" data-page=\"".concat(parseInt(page) + 1, "\">Next</button></li>"), "\n </ul>");
958
- } else {
959
- // If more than 5 lets show a select field instead so that we dont have loads and loads of buttons
960
- var strOptions = '';
961
-
962
- for (var _i = 1; _i <= numberPages; _i++) {
963
- if (_i == page) strOptions += "<option value=\"".concat(_i, "\" selected>Page ").concat(_i, "</option>");else strOptions += "<option value=\"".concat(_i, "\">Page ").concat(_i, "</option>");
964
- }
965
-
966
- paginationButtonsWrapper.innerHTML = "\n<div class=\"form-control__wrapper page-number mb-2\">\n<select class=\"form-select\">\n".concat(strOptions, "\n</select>\n</div>\n ");
967
- }
968
- };
969
- /* harmony default export */ var modules_table = (table);
970
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Table/Table.vue?vue&type=script&lang=js&
971
- //
972
- //
973
- //
974
- //
975
- //
976
- //
977
- //
978
- //
979
- //
980
- //
981
- //
982
- //
983
- //
984
- //
985
- //
986
- //
987
- //
988
- //
989
-
990
-
991
-
992
- var numericValue = function numericValue(value) {
993
- value = value.replace('£', '');
994
- value = value.replace('%', '');
995
-
996
- if (Number.isNaN(Number.parseFloat(value))) {
997
- return 0;
998
- }
999
-
1000
- return Number.parseFloat(value);
1001
- };
1002
-
1003
- /* harmony default export */ var Tablevue_type_script_lang_js_ = ({
1004
- name: 'Table',
1005
- props: {
1006
- reorder: {
1007
- type: Boolean,
1008
- required: false
1009
- },
1010
- page: {
1011
- type: Number,
1012
- required: false
1013
- },
1014
- show: {
1015
- type: Number,
1016
- required: false
1017
- },
1018
- sortby: {
1019
- type: String,
1020
- required: false
1021
- },
1022
- sort: {
1023
- type: String,
1024
- required: false
1025
- },
1026
- headingclass: {
1027
- type: String,
1028
- required: false
1029
- },
1030
- items: {
1031
- type: Array,
1032
- required: true
1033
- },
1034
- fields: {
1035
- type: Array,
1036
- required: true
1037
- }
1038
- },
1039
- computed: {
1040
- cellHeading() {
1041
- return heading => {
1042
- return "".concat(ucfirst(unsnake(heading)));
1043
- };
1044
- },
1045
-
1046
- numericValue() {
1047
- return value => {
1048
- value = numericValue(value);
1049
- return value;
1050
- };
1051
- }
1052
-
1053
- },
1054
-
1055
- mounted() {
1056
- this.$nextTick(function () {
1057
- modules_table(this.$refs.wrapper); // Listen for the event.
1058
-
1059
- this.$el.addEventListener('sorted', function (e) {
1060
- console.log('Table sorted');
1061
- }, false);
1062
- this.$el.addEventListener('filtered', function (e) {
1063
- console.log('Table filtered');
1064
- }, false);
1065
- });
1066
- },
1067
-
1068
- updated() {
1069
- this.$nextTick(function () {
1070
- // If the data gets updated we may need to recreate the tbody as it get detached when sorted in the table.js
1071
- var tbody = this.$refs.wrapper.querySelector('tbody');
1072
- var tbodyHTML = '';
1073
- this.items.forEach((row, index) => {
1074
- var rowID = row['rowid'] ? row['rowid'] : '';
1075
- row = Object.fromEntries(Object.entries(row).filter(_ref => {
1076
- var [key] = _ref;
1077
- return key !== 'rowid';
1078
- }));
1079
- tbodyHTML += "<tr data-row-id=\"".concat(rowID, "\">").concat(Object.keys(row).map(col => "<td data-label=\"".concat(ucfirst(unsnake(col)), "\" data-numeric=\"").concat(numericValue(row[col]), "\">").concat(row[col], "</td>")).join(""), "</tr>");
1080
- });
1081
- tbody.innerHTML = tbodyHTML; // Tell the framework that the table has been filtered so that it can re-sort it etc
1082
-
1083
- var updatedEvent = new Event('filtered');
1084
- this.$refs.wrapper.dispatchEvent(updatedEvent);
1085
- });
1086
- }
1087
-
1088
- });
1089
- ;// CONCATENATED MODULE: ./src/elements/Table/Table.vue?vue&type=script&lang=js&
1090
- /* harmony default export */ var Table_Tablevue_type_script_lang_js_ = (Tablevue_type_script_lang_js_);
1091
- ;// CONCATENATED MODULE: ./src/elements/Table/Table.vue
1092
-
1093
-
1094
-
1095
-
1096
-
1097
- /* normalize component */
1098
- ;
1099
- var Table_component = normalizeComponent(
1100
- Table_Tablevue_type_script_lang_js_,
1101
- Tablevue_type_template_id_1a479115_render,
1102
- Tablevue_type_template_id_1a479115_staticRenderFns,
1103
- false,
1104
- null,
1105
- null,
1106
- null
1107
-
1108
- )
1109
-
1110
- /* harmony default export */ var Table = (Table_component.exports);
1111
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Input/Input.vue?vue&type=template&id=002c44af&
1112
- var Inputvue_type_template_id_002c44af_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",class:_vm.wrapperClass()},[(_vm.needsLabel())?_c('label',{class:("form-label" + (_vm.labelclass?(" " + _vm.labelclass):'')),attrs:{"for":_vm.id,"title":_vm.title},domProps:{"innerHTML":_vm._s(_vm.displayLabel())}}):_vm._e(),(_vm.prefix)?_c('span',{class:("prefix " + (this.prefixClass) + " " + (_vm.size?("prefix-" + _vm.size):'')),attrs:{"role":"presentation"},domProps:{"innerHTML":_vm._s(_vm.prefix)}}):_vm._e(),(_vm.suffix)?_c('span',{class:("suffix " + (this.suffixClass) + " " + (_vm.size?("suffix-" + _vm.size):'')),attrs:{"role":"presentation"},domProps:{"innerHTML":_vm._s(_vm.suffix)}}):_vm._e(),((_vm.type)==='checkbox'&&(_vm.isInput()))?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control" + (_vm.size?(" form-control-" + _vm.size):"") + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"type":"checkbox"},domProps:{"checked":Array.isArray(_vm.inputVal)?_vm._i(_vm.inputVal,null)>-1:(_vm.inputVal)},on:{"keyup":_vm.inputKeyup,"change":function($event){var $$a=_vm.inputVal,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputVal=$$a.concat([$$v]))}else{$$i>-1&&(_vm.inputVal=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.inputVal=$$c}}}},'input',_vm.$attrs,false)):((_vm.type)==='radio'&&(_vm.isInput()))?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control" + (_vm.size?(" form-control-" + _vm.size):"") + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"type":"radio"},domProps:{"checked":_vm._q(_vm.inputVal,null)},on:{"keyup":_vm.inputKeyup,"change":function($event){_vm.inputVal=null}}},'input',_vm.$attrs,false)):(_vm.isInput())?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control" + (_vm.size?(" form-control-" + _vm.size):"") + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"type":_vm.type},domProps:{"value":(_vm.inputVal)},on:{"keyup":_vm.inputKeyup,"input":function($event){if($event.target.composing){ return; }_vm.inputVal=$event.target.value}}},'input',_vm.$attrs,false)):_vm._e(),(_vm.type=='textarea')?_c('textarea',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control" + (_vm.size?(" form-control-" + _vm.size):"") + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"type":_vm.type,"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern()},domProps:{"value":(_vm.inputVal)},on:{"input":function($event){if($event.target.composing){ return; }_vm.inputVal=$event.target.value}}},'textarea',_vm.$attrs,false)):_vm._e(),(_vm.type=='range')?_c('div',{staticClass:"input-group"},[((_vm.type)==='checkbox')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-range" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":"checkbox"},domProps:{"checked":Array.isArray(_vm.inputVal)?_vm._i(_vm.inputVal,null)>-1:(_vm.inputVal)},on:{"change":function($event){var $$a=_vm.inputVal,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputVal=$$a.concat([$$v]))}else{$$i>-1&&(_vm.inputVal=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.inputVal=$$c}}}},'input',_vm.$attrs,false)):((_vm.type)==='radio')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-range" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":"radio"},domProps:{"checked":_vm._q(_vm.inputVal,null)},on:{"change":function($event){_vm.inputVal=null}}},'input',_vm.$attrs,false)):_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-range" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":_vm.type},domProps:{"value":(_vm.inputVal)},on:{"input":function($event){if($event.target.composing){ return; }_vm.inputVal=$event.target.value}}},'input',_vm.$attrs,false)),_c('output',{staticClass:"input-group-text border-0 col-2 col-sm-1 px-0"},[_vm._v(_vm._s(_vm.value))])]):_vm._e(),(_vm.type=='color')?_c('div',{staticClass:"input-group"},[((_vm.type)==='checkbox')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control form-control-color" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":"checkbox"},domProps:{"checked":Array.isArray(_vm.inputVal)?_vm._i(_vm.inputVal,null)>-1:(_vm.inputVal)},on:{"change":function($event){var $$a=_vm.inputVal,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputVal=$$a.concat([$$v]))}else{$$i>-1&&(_vm.inputVal=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.inputVal=$$c}}}},'input',_vm.$attrs,false)):((_vm.type)==='radio')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control form-control-color" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":"radio"},domProps:{"checked":_vm._q(_vm.inputVal,null)},on:{"change":function($event){_vm.inputVal=null}}},'input',_vm.$attrs,false)):_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-control form-control-color" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"name":_vm.name?_vm.name:_vm.id,"id":_vm.id,"pattern":_vm.needPattern(),"list":_vm.hasOptions(),"oninput":"this.nextElementSibling.value=this.value;","type":_vm.type},domProps:{"value":(_vm.inputVal)},on:{"input":function($event){if($event.target.composing){ return; }_vm.inputVal=$event.target.value}}},'input',_vm.$attrs,false)),_c('output',{staticClass:"input-group-text flex-fill"},[_vm._v(_vm._s(_vm.value?_vm.vale:'#000000'))])]):_vm._e(),(_vm.type=='select')?_c('select',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputVal),expression:"inputVal"}],class:("form-select" + (_vm.size?(" form-select-" + _vm.size):"") + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"type":_vm.type,"name":_vm.id,"id":_vm.id,"pattern":_vm.needPattern()},on:{"change":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return val}); _vm.inputVal=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},'select',_vm.$attrs,false),_vm._l((_vm.options),function(value,index){return _c('option',{key:index,domProps:{"value":value.value}},[_vm._v(_vm._s(value.display ? value.display : value.value))])}),0):_vm._e(),(_vm.allowDatalist())?_c('datalist',{attrs:{"id":_vm.id+'-list'}},_vm._l((_vm.options),function(value,index){return _c('option',{key:index,domProps:{"value":value.value}},[_vm._v(_vm._s(value.value))])}),0):_vm._e(),(_vm.type=='checkbox'||_vm.type=='radio')?_c('input',_vm._b({staticClass:"form-check-input",attrs:{"type":_vm.type,"name":_vm.name?_vm.name:_vm.id,"id":_vm.id}},'input',_vm.$attrs,false)):_vm._e(),(_vm.type=='checkbox'||_vm.type=='radio')?_c('label',{class:("form-label form-check-label" + (_vm.labelclass?(" " + _vm.labelclass):'')),attrs:{"for":_vm.id},domProps:{"innerHTML":_vm._s(_vm.label)}}):_vm._e(),(_vm.type=='checkbox-btn'||_vm.type=='radio-btn')?_c('input',_vm._b({class:("btn-check" + (_vm.inputclass?(" " + _vm.inputclass):"")),attrs:{"type":_vm.type.replace('-btn',''),"autocomplete":"off","name":_vm.name?_vm.name:_vm.id,"id":_vm.id}},'input',_vm.$attrs,false)):_vm._e(),(_vm.type=='checkbox-btn'||_vm.type=='radio-btn')?_c('label',{class:("btn" + (_vm.labelclass?(" " + _vm.labelclass):'')),attrs:{"for":_vm.id},domProps:{"innerHTML":_vm._s(_vm.label)},on:{"click":_vm.clickEvent}}):_vm._e(),(_vm.errormsg)?_c('p',{staticClass:"invalid-feedback mb-0",domProps:{"innerHTML":_vm._s(_vm.errormsg)}}):_vm._e(),_vm._t("default")],2)}
1113
- var Inputvue_type_template_id_002c44af_staticRenderFns = []
1114
-
1115
-
1116
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Input/Input.vue?vue&type=script&lang=js&
1117
- //
1118
- //
1119
- //
1120
- //
1121
- //
1122
- //
1123
- //
1124
- //
1125
- //
1126
- //
1127
- //
1128
- //
1129
- //
1130
- //
1131
- //
1132
- //
1133
- //
1134
- //
1135
- //
1136
- //
1137
- //
1138
- //
1139
- //
1140
- //
1141
- //
1142
- //
1143
- //
1144
- //
1145
- //
1146
- //
1147
- //
1148
- //
1149
- //
1150
- //
1151
- //
1152
- //
1153
- //
1154
- //
1155
- //
1156
- //
1157
- //
1158
- //
1159
- //
1160
- //
1161
- //
1162
- //
1163
- //
1164
- //
1165
- //
1166
- /* harmony default export */ var Inputvue_type_script_lang_js_ = ({
1167
- name: 'Input',
1168
- props: {
1169
- value: {
1170
- type: String,
1171
- required: false
1172
- },
1173
- id: {
1174
- type: String,
1175
- required: true
1176
- },
1177
- name: {
1178
- type: String,
1179
- required: false
1180
- },
1181
- list: {
1182
- type: String,
1183
- required: false
1184
- },
1185
- label: {
1186
- type: String,
1187
- required: false
1188
- },
1189
- labelclass: {
1190
- type: String,
1191
- required: false
1192
- },
1193
- inputclass: {
1194
- type: String,
1195
- required: false
1196
- },
1197
- type: {
1198
- type: String,
1199
- required: false,
1200
- default: 'text'
1201
- },
1202
- size: {
1203
- type: String,
1204
- required: false
1205
- },
1206
- errormsg: {
1207
- type: String,
1208
- required: false
1209
- },
1210
- options: {
1211
- type: Array,
1212
- required: false
1213
- },
1214
- prefix: {
1215
- type: String,
1216
- required: false
1217
- },
1218
- prefixClass: {
1219
- type: String,
1220
- required: false
1221
- },
1222
- suffix: {
1223
- type: String,
1224
- required: false
1225
- },
1226
- suffixClass: {
1227
- type: String,
1228
- required: false
1229
- },
1230
- title: {
1231
- type: String,
1232
- required: false
1233
- },
1234
- hint: {
1235
- type: String,
1236
- required: false
1237
- }
1238
- },
1239
- computed: {
1240
- displayLabel() {
1241
- return () => {
1242
- if (this.$attrs.multiple) {
1243
- return this.label + "<span class=\"small d-block text-body font-body fw-normal\">Hold down the Ctrl (windows) or Command (Mac) button to select multiple options.</span>";
1244
- }
1245
-
1246
- if (this.hint) {
1247
- return this.label + "<span class=\"small d-block text-body font-body fw-normal\">".concat(this.hint, "</span>");
1248
- }
1249
-
1250
- return this.label;
1251
- };
1252
- },
1253
-
1254
- wrapperClass() {
1255
- return () => {
1256
- switch (this.type) {
1257
- case 'radio':
1258
- case 'checkbox':
1259
- return 'form-check';
1260
-
1261
- case 'radio-btn':
1262
- case 'checkbox-btn':
1263
- return false;
1264
-
1265
- default:
1266
- return 'form-control__wrapper';
1267
- }
1268
- };
1269
- },
1270
-
1271
- needPattern() {
1272
- return () => {
1273
- if (this.pattern) return this.pattern; // Create fallback patterns for input types
1274
-
1275
- switch (this.type) {
1276
- case 'datetime-local':
1277
- return '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}';
1278
- }
1279
-
1280
- return false;
1281
- };
1282
- },
1283
-
1284
- needsLabel() {
1285
- return () => {
1286
- switch (this.type) {
1287
- case 'radio':
1288
- case 'radio-btn':
1289
- case 'checkbox':
1290
- case 'checkbox-btn':
1291
- return false;
1292
-
1293
- default:
1294
- return true;
1295
- }
1296
- };
1297
- },
1298
-
1299
- isInput() {
1300
- return () => {
1301
- switch (this.type) {
1302
- case 'textarea':
1303
- case 'select':
1304
- case 'radio':
1305
- case 'radio-btn':
1306
- case 'checkbox':
1307
- case 'checkbox-btn':
1308
- case 'range':
1309
- case 'color':
1310
- return false;
1311
-
1312
- default:
1313
- return true;
1314
- }
1315
- };
1316
- },
1317
-
1318
- allowDatalist() {
1319
- return () => {
1320
- switch (this.type) {
1321
- case 'select':
1322
- case 'radio':
1323
- case 'radio-btn':
1324
- case 'checkbox':
1325
- case 'checkbox-btn':
1326
- return false;
1327
-
1328
- default:
1329
- return true;
1330
- }
1331
- };
1332
- },
1333
-
1334
- hasOptions() {
1335
- return () => {
1336
- if (this.list) return this.list;
1337
-
1338
- if (this.options) {
1339
- return this.id + '-list';
1340
- }
1341
- };
1342
- },
1343
-
1344
- inputVal: {
1345
- get() {
1346
- // Default to the first options if no value set for select field
1347
- if (this.value == undefined && this.options != undefined && this.type == "select") {
1348
- // Return an empty array if muliple attribute is set
1349
- if (this.$attrs.multiple) {
1350
- return [];
1351
- }
1352
-
1353
- return this.options[0].value;
1354
- }
1355
-
1356
- return this.value;
1357
- },
1358
-
1359
- set(val) {
1360
- this.$emit('input', val);
1361
- }
1362
-
1363
- }
1364
- },
1365
-
1366
- mounted() {
1367
- this.$nextTick(function () {
1368
- var element = this.$refs.wrapper; // Remove unnecessary divs that may get in the way of our CSS sibling selectors working
1369
-
1370
- if (element.parentNode && element.parentNode.classList.contains('form-check') || element.classList.length == 0) {
1371
- var fragment = document.createDocumentFragment();
1372
- Array.from(element.childNodes).forEach(child => fragment.appendChild(child));
1373
- element.parentNode.insertBefore(fragment, element);
1374
- element.parentNode.removeChild(element);
1375
- }
1376
- });
1377
- },
1378
-
1379
- methods: {
1380
- inputKeyup(event) {
1381
- this.$emit('keyupEvent', event);
1382
- },
1383
-
1384
- clickEvent() {
1385
- this.$emit('bus');
1386
- }
1387
-
1388
- }
1389
- });
1390
- ;// CONCATENATED MODULE: ./src/elements/Input/Input.vue?vue&type=script&lang=js&
1391
- /* harmony default export */ var Input_Inputvue_type_script_lang_js_ = (Inputvue_type_script_lang_js_);
1392
- ;// CONCATENATED MODULE: ./src/elements/Input/Input.vue
1393
-
1394
-
1395
-
1396
-
1397
-
1398
- /* normalize component */
1399
- ;
1400
- var Input_component = normalizeComponent(
1401
- Input_Inputvue_type_script_lang_js_,
1402
- Inputvue_type_template_id_002c44af_render,
1403
- Inputvue_type_template_id_002c44af_staticRenderFns,
1404
- false,
1405
- null,
1406
- null,
1407
- null
1408
-
1409
- )
1410
-
1411
- /* harmony default export */ var Input = (Input_component.exports);
1412
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/FileUploads/FileUploads.vue?vue&type=template&id=05a98343&
1413
- var FileUploadsvue_type_template_id_05a98343_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"multiple-file-uploads mb-4"},[_c('div',{staticClass:"row"},[_c('div',{class:("" + (_vm.inputcolclass ? _vm.inputcolclass : 'col-12 col-sm-4'))},[_c('Input',{staticClass:"form-control-inline col",attrs:{"type":"file","id":_vm.id,"name":(_vm.id + "[]"),"label":"Add new file","labelclass":"d-none","required":"","data-filesize":_vm.maxfilesize}})],1),_c('div',{staticClass:"col-12 col-md me-auto"},[_vm._t("default")],2),_vm._m(0)]),_c('button',{staticClass:"btn btn-secondary me-0",attrs:{"type":"button","data-add":"","data-maxfiles":_vm.maxfiles}},[_vm._v("+ Add file")])])}
1414
- var FileUploadsvue_type_template_id_05a98343_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"col mw-fit-content"},[_c('button',{staticClass:"btn btn-tertiary me-0",attrs:{"type":"button","data-delete":""}},[_vm._v("Delete")])])}]
1415
-
1416
-
1417
- ;// CONCATENATED MODULE: ./src/elements/FileUploads/FileUploads.vue?vue&type=template&id=05a98343&
1418
-
1419
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/FileUploads/FileUploads.vue?vue&type=script&lang=js&
1420
- //
1421
- //
1422
- //
1423
- //
1424
- //
1425
- //
1426
- //
1427
- //
1428
- //
1429
- //
1430
- //
1431
- //
1432
- //
1433
- //
1434
- //
1435
- //
1436
- //
1437
- //
1438
- //
1439
- //
1440
-
1441
- /* harmony default export */ var FileUploadsvue_type_script_lang_js_ = ({
1442
- components: {
1443
- Input: Input
1444
- },
1445
- name: 'FileUploads',
1446
- props: {
1447
- id: {
1448
- type: String,
1449
- required: true
1450
- },
1451
- inputcolclass: {
1452
- type: String,
1453
- required: false
1454
- },
1455
- maxfilesize: {
1456
- type: Number,
1457
- required: false
1458
- },
1459
- maxfiles: {
1460
- type: Number,
1461
- required: false
1462
- }
1463
- }
1464
- });
1465
- ;// CONCATENATED MODULE: ./src/elements/FileUploads/FileUploads.vue?vue&type=script&lang=js&
1466
- /* harmony default export */ var FileUploads_FileUploadsvue_type_script_lang_js_ = (FileUploadsvue_type_script_lang_js_);
1467
- ;// CONCATENATED MODULE: ./src/elements/FileUploads/FileUploads.vue
1468
-
1469
-
1470
-
1471
-
1472
-
1473
- /* normalize component */
1474
- ;
1475
- var FileUploads_component = normalizeComponent(
1476
- FileUploads_FileUploadsvue_type_script_lang_js_,
1477
- FileUploadsvue_type_template_id_05a98343_render,
1478
- FileUploadsvue_type_template_id_05a98343_staticRenderFns,
1479
- false,
1480
- null,
1481
- null,
1482
- null
1483
-
1484
- )
1485
-
1486
- /* harmony default export */ var FileUploads = (FileUploads_component.exports);
1487
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Accordion/Accordion.vue?vue&type=template&id=764a2320&
1488
- var Accordionvue_type_template_id_764a2320_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"container accordion"},[_vm._t("default")],2)}
1489
- var Accordionvue_type_template_id_764a2320_staticRenderFns = []
1490
-
1491
-
1492
- ;// CONCATENATED MODULE: ./assets/ts/modules/accordion.ts
1493
- function accordion(accordionElement) {
1494
- // Fetch all the details element.
1495
- if (!accordionElement.classList.contains('accordion--keep-open')) {
1496
- const details = accordionElement.querySelectorAll(":scope > details");
1497
- // Add the onclick listeners.
1498
- details.forEach((targetDetail) => {
1499
- targetDetail.addEventListener("click", () => {
1500
- // Close all the details that are not targetDetail.
1501
- details.forEach((detail) => {
1502
- if (detail !== targetDetail) {
1503
- detail.removeAttribute("open");
1504
- }
1505
- });
1506
- });
1507
- });
1508
- }
1509
- if (window.location.hash && document.querySelector(window.location.hash + ':not([open]) summary')) {
1510
- const detail = document.querySelector(window.location.hash + ' summary');
1511
- if (detail instanceof HTMLElement) {
1512
- detail.click();
1513
- }
1514
- }
1515
- window.addEventListener('hashchange', function () {
1516
- if (window.location.hash && document.querySelector(window.location.hash + ' summary')) {
1517
- const detail = document.querySelector(window.location.hash + ' summary');
1518
- if (detail instanceof HTMLElement) {
1519
- detail.click();
1520
- }
1521
- }
1522
- });
1523
- }
1524
- /* harmony default export */ var modules_accordion = (accordion);
1525
-
1526
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Accordion/Accordion.vue?vue&type=script&lang=js&
1527
- //
1528
- //
1529
- //
1530
- //
1531
- //
1532
- //
1533
- //
1534
- //
1535
- //
1536
- //
1537
-
1538
- /* harmony default export */ var Accordionvue_type_script_lang_js_ = ({
1539
- name: 'Accordion',
1540
- props: {},
1541
-
1542
- mounted() {
1543
- modules_accordion(this.$refs.wrapper);
1544
- }
1545
-
1546
- });
1547
- ;// CONCATENATED MODULE: ./src/components/Accordion/Accordion.vue?vue&type=script&lang=js&
1548
- /* harmony default export */ var Accordion_Accordionvue_type_script_lang_js_ = (Accordionvue_type_script_lang_js_);
1549
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Accordion/Accordion.vue?vue&type=style&index=0&lang=scss&
1550
- // extracted by mini-css-extract-plugin
1551
-
1552
- ;// CONCATENATED MODULE: ./src/components/Accordion/Accordion.vue?vue&type=style&index=0&lang=scss&
1553
-
1554
- ;// CONCATENATED MODULE: ./src/components/Accordion/Accordion.vue
1555
-
1556
-
1557
-
1558
- ;
1559
-
1560
-
1561
- /* normalize component */
1562
-
1563
- var Accordion_component = normalizeComponent(
1564
- Accordion_Accordionvue_type_script_lang_js_,
1565
- Accordionvue_type_template_id_764a2320_render,
1566
- Accordionvue_type_template_id_764a2320_staticRenderFns,
1567
- false,
1568
- null,
1569
- null,
1570
- null
1571
-
1572
- )
1573
-
1574
- /* harmony default export */ var Accordion = (Accordion_component.exports);
1575
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Accordion/AccordionItem.vue?vue&type=template&id=b754197e&
1576
- var AccordionItemvue_type_template_id_b754197e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('details',{staticClass:"accordion-item",attrs:{"id":_vm.createID(_vm.title)}},[_c('summary',{class:("" + (_vm.titlecolour?("bg-" + _vm.titlecolour):'')),on:{"click":function($event){_vm.show = true}}},[_c('span',{staticClass:"accordion-header accordion-button h4"},[_vm._v(_vm._s(_vm.title)),(_vm.badge)?_c('span',{class:("badge bg-" + _vm.badgecolour)},[_vm._v(_vm._s(_vm.badge))]):_vm._e()])]),(_vm.show)?_c('div',{staticClass:"accordion-body"},[_vm._t("default")],2):_vm._e()])}
1577
- var AccordionItemvue_type_template_id_b754197e_staticRenderFns = []
1578
-
1579
-
1580
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Accordion/AccordionItem.vue?vue&type=script&lang=js&
1581
- //
1582
- //
1583
- //
1584
- //
1585
- //
1586
- //
1587
- //
1588
- //
1589
- //
1590
- //
1591
-
1592
- /* harmony default export */ var AccordionItemvue_type_script_lang_js_ = ({
1593
- name: 'AccordionItem',
1594
- props: {
1595
- title: {
1596
- type: String,
1597
- required: true
1598
- },
1599
- titlecolour: {
1600
- type: String,
1601
- required: false
1602
- },
1603
- badge: {
1604
- type: [Number, String],
1605
- required: false
1606
- },
1607
- badgecolour: {
1608
- type: String,
1609
- required: false,
1610
- default: 'light'
1611
- },
1612
- lazy: {
1613
- type: Boolean,
1614
- required: false
1615
- }
1616
- },
1617
- computed: {
1618
- createID() {
1619
- return summary => {
1620
- return "".concat(safeID(summary));
1621
- };
1622
- }
1623
-
1624
- },
1625
-
1626
- data() {
1627
- return {
1628
- show: this.lazy ? false : true
1629
- };
1630
- }
1631
-
1632
- });
1633
- ;// CONCATENATED MODULE: ./src/components/Accordion/AccordionItem.vue?vue&type=script&lang=js&
1634
- /* harmony default export */ var Accordion_AccordionItemvue_type_script_lang_js_ = (AccordionItemvue_type_script_lang_js_);
1635
- ;// CONCATENATED MODULE: ./src/components/Accordion/AccordionItem.vue
1636
-
1637
-
1638
-
1639
-
1640
-
1641
- /* normalize component */
1642
- ;
1643
- var AccordionItem_component = normalizeComponent(
1644
- Accordion_AccordionItemvue_type_script_lang_js_,
1645
- AccordionItemvue_type_template_id_b754197e_render,
1646
- AccordionItemvue_type_template_id_b754197e_staticRenderFns,
1647
- false,
1648
- null,
1649
- null,
1650
- null
1651
-
1652
- )
1653
-
1654
- /* harmony default export */ var AccordionItem = (AccordionItem_component.exports);
1655
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Banner/Banner.vue?vue&type=template&id=1acf827a&
1656
- var Bannervue_type_template_id_1acf827a_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"container"},[_c('div',{class:'bg-'+_vm.background+' mb-4'},[_c('div',{staticClass:"row"},[_c('div',{staticClass:"col-sm-6"},[_c('div',{staticClass:"pt-5 pb-3 px-4"},[_c('h2',[_vm._v(_vm._s(_vm.title))]),_vm._t("default")],2)]),_c('div',{staticClass:"col-sm-6 col-md-5 ms-auto"},[(_vm.image)?_c('img',{staticClass:"h-100 w-100 object-cover",attrs:{"src":_vm.image,"alt":""}}):_vm._e()])])])])}
1657
- var Bannervue_type_template_id_1acf827a_staticRenderFns = []
1658
-
1659
-
1660
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Banner/Banner.vue?vue&type=script&lang=js&
1661
- //
1662
- //
1663
- //
1664
- //
1665
- //
1666
- //
1667
- //
1668
- //
1669
- //
1670
- //
1671
- //
1672
- //
1673
- //
1674
- //
1675
- //
1676
- //
1677
- //
1678
- //
1679
- /* harmony default export */ var Bannervue_type_script_lang_js_ = ({
1680
- name: 'Header',
1681
- props: {
1682
- title: {
1683
- type: String,
1684
- required: true
1685
- },
1686
- image: {
1687
- type: String,
1688
- required: false
1689
- },
1690
- background: {
1691
- type: String,
1692
- default: 'light',
1693
- required: false
1694
- }
1695
- }
1696
- });
1697
- ;// CONCATENATED MODULE: ./src/components/Banner/Banner.vue?vue&type=script&lang=js&
1698
- /* harmony default export */ var Banner_Bannervue_type_script_lang_js_ = (Bannervue_type_script_lang_js_);
1699
- ;// CONCATENATED MODULE: ./src/components/Banner/Banner.vue
1700
-
1701
-
1702
-
1703
-
1704
-
1705
- /* normalize component */
1706
- ;
1707
- var Banner_component = normalizeComponent(
1708
- Banner_Bannervue_type_script_lang_js_,
1709
- Bannervue_type_template_id_1acf827a_render,
1710
- Bannervue_type_template_id_1acf827a_staticRenderFns,
1711
- false,
1712
- null,
1713
- null,
1714
- null
1715
-
1716
- )
1717
-
1718
- /* harmony default export */ var Banner = (Banner_component.exports);
1719
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Card/Card.vue?vue&type=template&id=e6635cb8&
1720
- var Cardvue_type_template_id_e6635cb8_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{class:'card'+(_vm.type?' card--'+_vm.type:''),attrs:{"href":_vm.link,"title":'Find out more: '+_vm.title+(_vm.subtitle ? ' - '+_vm.subtitle:'')}},[(_vm.image)?_c('div',{staticClass:"card-header__wrapper"},[_c('img',{staticClass:"card-image",attrs:{"src":_vm.image,"alt":"","loading":"lazy"}}),_c('div',{staticClass:"card-header"},[(this.details && this.details.status)?_c('span',{staticClass:"badge bg-primary p-2 me-2",domProps:{"innerHTML":_vm._s(_vm.cardStatus())}}):_vm._e(),(this.details && (this.details.images || this.details.videos))?_c('span',{staticClass:"badge bg-black bg-opacity-50 p-2 align-self-end",domProps:{"innerHTML":_vm._s(_vm.cardMedia())}}):_vm._e()]),(_vm.details && _vm.details.logo)?_c('img',{staticClass:"card-logo",attrs:{"src":_vm.details.logo,"alt":"","loading":"lazy"}}):_vm._e()]):_vm._e(),_c('div',{staticClass:"card-body",domProps:{"innerHTML":_vm._s(_vm.cardContent())}}),(_vm.hidectatext == false)?_c('div',{staticClass:"card-footer"},[_c('span',{class:((_vm.btntype == 'link' ? "link" : ("btn btn-" + _vm.btntype)) + " mb-0")},[_vm._v(_vm._s(_vm.ctatext)),_c('span',{staticClass:"visually-hidden"},[_vm._v(" about "+_vm._s(_vm.title))])])]):_vm._e()])}
1721
- var Cardvue_type_template_id_e6635cb8_staticRenderFns = []
1722
-
1723
-
1724
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Card/Card.vue?vue&type=script&lang=js&
1725
- //
1726
- //
1727
- //
1728
- //
1729
- //
1730
- //
1731
- //
1732
- //
1733
- //
1734
- //
1735
- //
1736
- //
1737
- //
1738
- //
1739
- //
1740
- //
1741
- //
1742
- //
1743
- //
1744
- //
1745
- //
1746
- /* harmony default export */ var Cardvue_type_script_lang_js_ = ({
1747
- name: 'Card',
1748
- props: {
1749
- link: {
1750
- type: String,
1751
- required: false
1752
- },
1753
- titleclass: {
1754
- type: String,
1755
- required: false,
1756
- default: 'h4'
1757
- },
1758
- title: {
1759
- type: String,
1760
- required: false
1761
- },
1762
- subtitle: {
1763
- type: String,
1764
- required: false
1765
- },
1766
- content: {
1767
- type: String,
1768
- required: false
1769
- },
1770
- type: {
1771
- type: String,
1772
- required: false
1773
- },
1774
- btntype: {
1775
- type: String,
1776
- required: false,
1777
- default: 'secondary'
1778
- },
1779
- ctatext: {
1780
- type: String,
1781
- required: false,
1782
- default: 'Find out more'
1783
- },
1784
- hidectatext: {
1785
- type: Boolean,
1786
- required: false,
1787
- default: false
1788
- },
1789
- image: {
1790
- type: String,
1791
- required: false
1792
- },
1793
- details: {
1794
- type: Object,
1795
- required: false
1796
- }
1797
- },
1798
- computed: {
1799
- cardStatus() {
1800
- return () => {
1801
- return this.details && this.details.status ? "".concat(this.details.status == 'Live now' ? '<span class="text-danger lh-0 fs-1 align-middle">&#8226;</span>&nbsp;&nbsp;' : '').concat(this.details.status) : '';
1802
- };
1803
- },
1804
-
1805
- cardMedia() {
1806
- return () => {
1807
- return "<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 30 28' class=\"icon text-white\"><title>Images </title><path d='M15 10.5c2.484 0 4.5 2.016 4.5 4.5s-2.016 4.5-4.5 4.5-4.5-2.016-4.5-4.5 2.016-4.5 4.5-4.5zM26 4c2.203 0 4 1.797 4 4v14c0 2.203-1.797 4-4 4h-22c-2.203 0-4-1.797-4-4v-14c0-2.203 1.797-4 4-4h3.5l0.797-2.125c0.391-1.031 1.609-1.875 2.703-1.875h8c1.094 0 2.312 0.844 2.703 1.875l0.797 2.125h3.5zM15 22c3.859 0 7-3.141 7-7s-3.141-7-7-7-7 3.141-7 7 3.141 7 7 7z'></path></svg> ".concat(this.details && this.details.images ? "".concat(this.details.images) : "0", "&nbsp;&nbsp;|&nbsp;&nbsp;<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 28 28' class=\"icon text-white ms-0\"><title>Videos </title><path d=\"M11.109 17.625l7.562-3.906-7.562-3.953v7.859zM14 4.156c5.891 0 9.797 0.281 9.797 0.281 0.547 0.063 1.75 0.063 2.812 1.188 0 0 0.859 0.844 1.109 2.781 0.297 2.266 0.281 4.531 0.281 4.531v2.125s0.016 2.266-0.281 4.531c-0.25 1.922-1.109 2.781-1.109 2.781-1.062 1.109-2.266 1.109-2.812 1.172 0 0-3.906 0.297-9.797 0.297v0c-7.281-0.063-9.516-0.281-9.516-0.281-0.625-0.109-2.031-0.078-3.094-1.188 0 0-0.859-0.859-1.109-2.781-0.297-2.266-0.281-4.531-0.281-4.531v-2.125s-0.016-2.266 0.281-4.531c0.25-1.937 1.109-2.781 1.109-2.781 1.062-1.125 2.266-1.125 2.812-1.188 0 0 3.906-0.281 9.797-0.281v0z\"></path></svg> ").concat(this.details && this.details.videos ? "".concat(this.details.videos) : "0");
1808
- };
1809
- },
1810
-
1811
- cardContent() {
1812
- return () => {
1813
- var tagClass = function tagClass(tag) {
1814
- switch (tag) {
1815
- case 'Modern method':
1816
- return 'bg-secondary text-primary';
1817
-
1818
- case 'Freehold':
1819
- return 'bg-light text-dark';
1820
-
1821
- default:
1822
- return 'bg-body text-white';
1823
- }
1824
- };
1825
-
1826
- var tags = this.details && this.details.tags ? this.details.tags.map(tag => "<span class=\"badge rounded-pill py-2 px-3 mb-3 me-2 ".concat(tagClass(tag), "\">").concat(tag, "</span>")).join("") : '';
1827
- var title = this.title ? "<span class=\"card-title d-block ".concat(this.titleclass, "\">").concat(this.title).concat(this.subtitle ? " <span class=\"d-block fw-normal font-body text-body small\">".concat(this.subtitle, "</span>") : '', "</span>") : "";
1828
- var details = "\n ".concat(this.details && this.details.guideprice ? "<span class=\"d-block h6 text-dark mb-1\">Price guide: ".concat(this.details.guideprice, "</span>") : "", "\n ").concat(this.details && this.details.auctiontime ? "<span class=\"d-block h6 text-primary mb-4\">Auction time left: ".concat(this.details.auctiontime, "</span>") : "", "\n ").concat(this.details && this.details.readtime ? "<span class=\"d-block h6 text-primary mb-4\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"22\" height=\"23\" viewBox=\"0 0 22 23\" class=\"icon ms-0 me-2\"><path d=\"M11 1.63c-5.176 0-9.37 4.194-9.37 9.37 0 5.176 4.194 9.37 9.37 9.37 5.176 0 9.37-4.194 9.37-9.37 0-5.176-4.194-9.37-9.37-9.37M11 0c6.075 0 11 4.925 11 11s-4.925 11-11 11S0 17.075 0 11 4.925 0 11 0\" fill=\"var(--colour-secondary)\" /><path d=\"M9.62 5.39c0-.473.368-.856.82-.856.454 0 .822.383.822.855v6.27l3.25 1.898c.395.23.536.75.314 1.16-.22.412-.72.558-1.115.328l-4.09-2.39V5.39z\" fill=\"var(--colour-primary)\"/></svg>".concat(this.details.readtime, "</span>") : "", "\n ");
1829
- return "".concat(tags).concat(title).concat(details).concat(this.content);
1830
- };
1831
- }
1832
-
1833
- }
1834
- });
1835
- ;// CONCATENATED MODULE: ./src/elements/Card/Card.vue?vue&type=script&lang=js&
1836
- /* harmony default export */ var Card_Cardvue_type_script_lang_js_ = (Cardvue_type_script_lang_js_);
1837
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elements/Card/Card.vue?vue&type=style&index=0&lang=scss&
1838
- // extracted by mini-css-extract-plugin
1839
-
1840
- ;// CONCATENATED MODULE: ./src/elements/Card/Card.vue?vue&type=style&index=0&lang=scss&
1841
-
1842
- ;// CONCATENATED MODULE: ./src/elements/Card/Card.vue
1843
-
1844
-
1845
-
1846
- ;
1847
-
1848
-
1849
- /* normalize component */
1850
-
1851
- var Card_component = normalizeComponent(
1852
- Card_Cardvue_type_script_lang_js_,
1853
- Cardvue_type_template_id_e6635cb8_render,
1854
- Cardvue_type_template_id_e6635cb8_staticRenderFns,
1855
- false,
1856
- null,
1857
- null,
1858
- null
1859
-
1860
- )
1861
-
1862
- /* harmony default export */ var Card = (Card_component.exports);
1863
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/CardDeck/CardDeck.vue?vue&type=template&id=dc8dec94&
1864
- var CardDeckvue_type_template_id_dc8dec94_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"container card-deck prevent-invert",attrs:{"data-card-type":_vm.cardtype}},[_vm._t("default"),_c('div',{class:("row row-cols-" + _vm.cols + " row-cols-sm-" + _vm.smcols + " row-cols-md-" + _vm.mdcols + " " + (_vm.gap ? ("g-" + _vm.gap): ""))},_vm._l((_vm.items),function(value,index){return _c('div',{key:index,staticClass:"col"},[_c('Card',_vm._b({class:_vm.cardclass,attrs:{"type":_vm.cardtype,"btntype":_vm.btntype,"titleclass":_vm.titleclass,"ctatext":_vm.ctatext,"hidectatext":_vm.hidectatext}},'Card',value,false))],1)}),0),_vm._t("after")],2)}
1865
- var CardDeckvue_type_template_id_dc8dec94_staticRenderFns = []
1866
-
1867
-
1868
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/CardDeck/CardDeck.vue?vue&type=script&lang=js&
1869
- //
1870
- //
1871
- //
1872
- //
1873
- //
1874
- //
1875
- //
1876
- //
1877
- //
1878
- //
1879
- //
1880
- //
1881
- //
1882
- //
1883
- //
1884
- //
1885
-
1886
- /* harmony default export */ var CardDeckvue_type_script_lang_js_ = ({
1887
- components: {
1888
- Card: Card
1889
- },
1890
- name: 'CardDeck',
1891
- props: {
1892
- items: {
1893
- type: Array,
1894
- required: false
1895
- },
1896
- cols: {
1897
- type: Number,
1898
- required: false,
1899
- default: 1
1900
- },
1901
- smcols: {
1902
- type: Number,
1903
- required: false,
1904
- default: 1
1905
- },
1906
- mdcols: {
1907
- type: Number,
1908
- required: false,
1909
- default: 3
1910
- },
1911
- gap: {
1912
- type: Number,
1913
- required: false,
1914
- default: 4
1915
- },
1916
- cardtype: {
1917
- type: String,
1918
- required: false
1919
- },
1920
- cardclass: {
1921
- type: String,
1922
- required: false
1923
- },
1924
- btntype: {
1925
- type: String,
1926
- required: false
1927
- },
1928
- titleclass: {
1929
- type: String,
1930
- required: false
1931
- },
1932
- ctatext: {
1933
- type: String,
1934
- required: false
1935
- },
1936
- hidectatext: {
1937
- type: Boolean,
1938
- required: false,
1939
- default: false
1940
- }
1941
- }
1942
- });
1943
- ;// CONCATENATED MODULE: ./src/components/CardDeck/CardDeck.vue?vue&type=script&lang=js&
1944
- /* harmony default export */ var CardDeck_CardDeckvue_type_script_lang_js_ = (CardDeckvue_type_script_lang_js_);
1945
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/CardDeck/CardDeck.vue?vue&type=style&index=0&lang=scss&
1946
- // extracted by mini-css-extract-plugin
1947
-
1948
- ;// CONCATENATED MODULE: ./src/components/CardDeck/CardDeck.vue?vue&type=style&index=0&lang=scss&
1949
-
1950
- ;// CONCATENATED MODULE: ./src/components/CardDeck/CardDeck.vue
1951
-
1952
-
1953
-
1954
- ;
1955
-
1956
-
1957
- /* normalize component */
1958
-
1959
- var CardDeck_component = normalizeComponent(
1960
- CardDeck_CardDeckvue_type_script_lang_js_,
1961
- CardDeckvue_type_template_id_dc8dec94_render,
1962
- CardDeckvue_type_template_id_dc8dec94_staticRenderFns,
1963
- false,
1964
- null,
1965
- null,
1966
- null
1967
-
1968
- )
1969
-
1970
- /* harmony default export */ var CardDeck = (CardDeck_component.exports);
1971
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Carousel/Carousel.vue?vue&type=template&id=9f631a76&
1972
- var Carouselvue_type_template_id_9f631a76_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"container carousel",attrs:{"id":'carousel'+_vm.id,"data-cols":_vm.cols,"data-sm-cols":_vm.smcols,"data-md-cols":_vm.mdcols}},[_vm._t("default"),_c('div',{staticClass:"carousel__wrapper"},[_c('div',{staticClass:"carousel__inner"},[(_vm.type == 'card')?_c('div',{class:("row row-cols-" + _vm.cols + " row-cols-sm-" + _vm.smcols + " row-cols-md-" + _vm.mdcols + " " + (_vm.gap ? ("g-" + _vm.gap): ""))},_vm._l((_vm.items),function(value,index){return _c('div',{key:index,class:("col carousel__item" + (_vm.colclass?(" " + _vm.colclass):'')),attrs:{"id":'carousel'+_vm.id+'slide'+(index+1)}},[_c('Card',_vm._b({class:_vm.cardclass,attrs:{"type":_vm.cardtype,"btnyype":_vm.btntype,"titleclass":_vm.titleclass,"ctatext":_vm.ctatext,"hidectatext":_vm.hidectatext}},'Card',value,false))],1)}),0):_vm._e(),(_vm.type != 'card')?_c('div',{class:("row row-cols-" + _vm.cols + " row-cols-sm-" + _vm.smcols + " row-cols-md-" + _vm.mdcols + " " + (_vm.gap ? ("g-" + _vm.gap): ""))},_vm._l((_vm.items),function(value,index){return _c('div',{key:index,class:("col carousel__item" + (_vm.colclass?(" " + _vm.colclass):'')),attrs:{"id":'carousel'+_vm.id+'slide'+(index+1)},domProps:{"innerHTML":_vm._s(_vm.content(value))}})}),0):_vm._e()]),_c('div',{class:("carousel__controls cols-" + _vm.cols + " cols-sm-" + _vm.smcols + " cols-md-" + _vm.mdcols)},_vm._l((_vm.items),function(value,index){return _c('a',{key:index,class:("control-" + (index+1)),attrs:{"href":'\#carousel'+_vm.id+'slide'+(index+1)}},[_vm._v("Slide "+_vm._s(index+1))])}),0),_c('button',{staticClass:"btn btn-prev",attrs:{"data-go":"0","disabled":""}},[_vm._v("Prev")]),_c('button',{staticClass:"btn btn-next",attrs:{"data-go":"2"}},[_vm._v("Next")])])],2)}
1973
- var Carouselvue_type_template_id_9f631a76_staticRenderFns = []
1974
-
1975
-
1976
- ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
1977
- function _defineProperty(obj, key, value) {
1978
- if (key in obj) {
1979
- Object.defineProperty(obj, key, {
1980
- value: value,
1981
- enumerable: true,
1982
- configurable: true,
1983
- writable: true
1984
- });
1985
- } else {
1986
- obj[key] = value;
1987
- }
1988
-
1989
- return obj;
1990
- }
1991
- ;// CONCATENATED MODULE: ./assets/js/modules/carousel.js
1992
- function carousel(carouselElement) {
1993
- var scrollTimeout;
1994
- var carouselInner = carouselElement.querySelector('.carousel__inner');
1995
- var itemCount = carouselElement.querySelectorAll('.carousel__item').length;
1996
- var cols = carouselElement.getAttribute('data-cols');
1997
- var smCols = carouselElement.getAttribute('data-sm-cols');
1998
- var mdCols = carouselElement.getAttribute('data-md-cols');
1999
- carouselElement.querySelector('.carousel__controls a').classList.add('active'); // On scroll we need to make sure the buttons get corrected and the next testimonial is shown
2000
-
2001
- carouselInner.addEventListener('scroll', function (e) {
2002
- clearTimeout(scrollTimeout);
2003
- scrollTimeout = setTimeout(function () {
2004
- var scrollArea = carouselInner.clientWidth;
2005
- var scrollWidth = carouselInner.scrollWidth;
2006
- var scrollLeft = carouselInner.scrollLeft;
2007
- var targetSlide = Math.round(scrollLeft / scrollWidth * itemCount) + 1;
2008
- var lastItemOffset = carouselElement.querySelector('.carousel__item:last-child').offsetLeft;
2009
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
2010
- link.classList.remove('active');
2011
- });
2012
- carouselElement.querySelector('.control-' + targetSlide).classList.add('active'); // Disable the previous button
2013
-
2014
- if (targetSlide == 1) carouselElement.querySelector('.btn-prev').setAttribute('disabled', 'disabled');else carouselElement.querySelector('.btn-prev').removeAttribute('disabled'); // Disable the next button if the last item is in view
2015
-
2016
- if (carouselInner.scrollLeft + scrollArea > lastItemOffset) carouselElement.querySelector('.btn-next').setAttribute('disabled', 'disabled');else carouselElement.querySelector('.btn-next').removeAttribute('disabled');
2017
- }, 100);
2018
- }, false); // when the buttons are used we need to make sure the carousel scrolls to the correct place
2019
-
2020
- carouselElement.addEventListener('click', function (e) {
2021
- for (var target = e.target; target && target != this; target = target.parentNode) {
2022
- if (target.matches('.carousel__controls a')) {
2023
- e.preventDefault();
2024
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
2025
- link.classList.remove('active');
2026
- });
2027
- target.classList.add('active');
2028
- var el = document.querySelector(target.getAttribute('href'));
2029
- carouselInner.scroll({
2030
- top: 0,
2031
- left: el.offsetLeft,
2032
- behavior: 'smooth'
2033
- });
2034
- break;
2035
- }
2036
- }
2037
- }, false);
2038
- carouselElement.addEventListener('click', function (e) {
2039
- for (var target = e.target; target && target != this; target = target.parentNode) {
2040
- if (target.matches('.btn-next, .btn-prev')) {
2041
- e.preventDefault();
2042
- var scrollTo = target.classList.contains('btn-prev') ? carouselInner.scrollLeft - carouselInner.clientWidth : carouselInner.scrollLeft + carouselInner.clientWidth;
2043
- carouselInner.scroll({
2044
- top: 0,
2045
- left: scrollTo,
2046
- behavior: 'smooth'
2047
- });
2048
- break;
2049
- }
2050
- }
2051
- }, false); // Add responsive hide button classes
2052
-
2053
- if (itemCount == 1) carouselElement.classList.add('hide-btns');
2054
- if (smCols >= itemCount) carouselElement.classList.add('hide-sm-btns');
2055
- if (mdCols >= itemCount) carouselElement.classList.add('hide-md-btns');
2056
- }
2057
-
2058
- /* harmony default export */ var modules_carousel = (carousel);
2059
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Carousel/Carousel.vue?vue&type=script&lang=js&
2060
-
2061
-
2062
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2063
-
2064
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2065
-
2066
- //
2067
- //
2068
- //
2069
- //
2070
- //
2071
- //
2072
- //
2073
- //
2074
- //
2075
- //
2076
- //
2077
- //
2078
- //
2079
- //
2080
- //
2081
- //
2082
- //
2083
- //
2084
- //
2085
- //
2086
- //
2087
- //
2088
- //
2089
- //
2090
- //
2091
- //
2092
- //
2093
- //
2094
- //
2095
- //
2096
- //
2097
- //
2098
-
2099
-
2100
- // Inherit the card deck props
2101
-
2102
- var cardDeckProps = CardDeck.props; // Update the default values
2103
-
2104
- cardDeckProps.gap.default = 0;
2105
- cardDeckProps.cols.default = 1;
2106
- cardDeckProps.smcols.default = 2;
2107
- cardDeckProps.mdcols.default = 4;
2108
- /* harmony default export */ var Carouselvue_type_script_lang_js_ = ({
2109
- components: {
2110
- Card: Card
2111
- },
2112
- name: 'Carousel',
2113
-
2114
- data() {
2115
- return {
2116
- id: null
2117
- };
2118
- },
2119
-
2120
- props: _objectSpread(_objectSpread({}, cardDeckProps), {}, {
2121
- colclass: {
2122
- type: String,
2123
- required: false
2124
- },
2125
- type: {
2126
- type: String,
2127
- required: false
2128
- }
2129
- }),
2130
- computed: {
2131
- content() {
2132
- return value => {
2133
- return "".concat(value.image ? "<img src=\"".concat(value.image, "\" alt=\"\" />") : '').concat(value.content ? value.content : '');
2134
- };
2135
- }
2136
-
2137
- },
2138
-
2139
- mounted() {
2140
- this.id = this._uid;
2141
- this.$nextTick(function () {
2142
- modules_carousel(this.$refs.wrapper);
2143
- });
2144
- }
2145
-
2146
- });
2147
- ;// CONCATENATED MODULE: ./src/components/Carousel/Carousel.vue?vue&type=script&lang=js&
2148
- /* harmony default export */ var Carousel_Carouselvue_type_script_lang_js_ = (Carouselvue_type_script_lang_js_);
2149
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Carousel/Carousel.vue?vue&type=style&index=0&lang=scss&
2150
- // extracted by mini-css-extract-plugin
2151
-
2152
- ;// CONCATENATED MODULE: ./src/components/Carousel/Carousel.vue?vue&type=style&index=0&lang=scss&
2153
-
2154
- ;// CONCATENATED MODULE: ./src/components/Carousel/Carousel.vue
2155
-
2156
-
2157
-
2158
- ;
2159
-
2160
-
2161
- /* normalize component */
2162
-
2163
- var Carousel_component = normalizeComponent(
2164
- Carousel_Carouselvue_type_script_lang_js_,
2165
- Carouselvue_type_template_id_9f631a76_render,
2166
- Carouselvue_type_template_id_9f631a76_staticRenderFns,
2167
- false,
2168
- null,
2169
- null,
2170
- null
2171
-
2172
- )
2173
-
2174
- /* harmony default export */ var Carousel = (Carousel_component.exports);
2175
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Header/Header.vue?vue&type=template&id=1a09a7ae&
2176
- var Headervue_type_template_id_1a09a7ae_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"header-banner"},[_c('div',{staticClass:"container"},[_vm._t("breadcrumb"),_c('div',{staticClass:"header-banner__inner"},[_c('h1',{domProps:{"innerHTML":_vm._s(_vm.title)}}),_vm._t("default")],2)],2),(_vm.image)?_c('picture',[_c('source',{attrs:{"srcset":_vm.image,"media":"(min-width: 62em)"}}),_c('img',{attrs:{"src":"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7","alt":""}})]):_vm._e()])}
2177
- var Headervue_type_template_id_1a09a7ae_staticRenderFns = []
2178
-
2179
-
2180
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Header/Header.vue?vue&type=script&lang=js&
2181
- //
2182
- //
2183
- //
2184
- //
2185
- //
2186
- //
2187
- //
2188
- //
2189
- //
2190
- //
2191
- //
2192
- //
2193
- //
2194
- //
2195
- //
2196
- //
2197
- //
2198
- //
2199
- //
2200
- //
2201
- //
2202
- //
2203
- //
2204
- /* harmony default export */ var Headervue_type_script_lang_js_ = ({
2205
- name: 'Header',
2206
- props: {
2207
- title: {
2208
- type: String,
2209
- required: true
2210
- },
2211
- image: {
2212
- type: String,
2213
- required: false
2214
- }
2215
- }
2216
- });
2217
- ;// CONCATENATED MODULE: ./src/components/Header/Header.vue?vue&type=script&lang=js&
2218
- /* harmony default export */ var Header_Headervue_type_script_lang_js_ = (Headervue_type_script_lang_js_);
2219
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Header/Header.vue?vue&type=style&index=0&lang=scss&
2220
- // extracted by mini-css-extract-plugin
2221
-
2222
- ;// CONCATENATED MODULE: ./src/components/Header/Header.vue?vue&type=style&index=0&lang=scss&
2223
-
2224
- ;// CONCATENATED MODULE: ./src/components/Header/Header.vue
2225
-
2226
-
2227
-
2228
- ;
2229
-
2230
-
2231
- /* normalize component */
2232
-
2233
- var Header_component = normalizeComponent(
2234
- Header_Headervue_type_script_lang_js_,
2235
- Headervue_type_template_id_1a09a7ae_render,
2236
- Headervue_type_template_id_1a09a7ae_staticRenderFns,
2237
- false,
2238
- null,
2239
- null,
2240
- null
2241
-
2242
- )
2243
-
2244
- /* harmony default export */ var Header = (Header_component.exports);
2245
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Testimonial/Testimonial.vue?vue&type=template&id=c977152a&
2246
- var Testimonialvue_type_template_id_c977152a_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"container testimonial mb-5",attrs:{"data-show":"1"}},[_c('div',{class:'bg-'+_vm.background},[_c('div',{staticClass:"row"},[_c('div',{staticClass:"col-md-5 position-relative"},[_c('div',{staticClass:"testimonial__images"},_vm._l((_vm.items),function(value,index){return _c('img',{key:index,class:'h-100 w-100 object-cover' + (value.image ? '' : ' opacity-0'),attrs:{"src":value.image ? value.image : 'data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==',"alt":""}})}),0),_vm._m(0)]),_c('div',{staticClass:"col-md-7"},[_c('h2',[_vm._v("What our customers think…")]),_c('div',{staticClass:"testimonial__content"},_vm._l((_vm.items),function(value,index){return _c('blockquote',{key:index,class:value.class},[_c('div',{domProps:{"innerHTML":_vm._s(value.quote)}}),_c('cite',{domProps:{"innerHTML":_vm._s(value.cite)}})])}),0),_c('div',{staticClass:"testimonial__after"},[_vm._t("default")],2)])]),_c('span',{staticClass:"circle circle--dots d-none d-md-block"})])])}
2247
- var Testimonialvue_type_template_id_c977152a_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"testimonial__controls"},[_c('button',{staticClass:"btn-prev",attrs:{"data-go":"0","disabled":""}},[_vm._v("Previous")]),_c('button',{staticClass:"btn-next",attrs:{"data-go":"2"}},[_vm._v("Next")])])}]
2248
-
2249
-
2250
- ;// CONCATENATED MODULE: ./src/components/Testimonial/Testimonial.vue?vue&type=template&id=c977152a&
2251
-
2252
- ;// CONCATENATED MODULE: ./assets/js/modules/testimonial.js
2253
- function testimonial(testimonialElement) {
2254
- var scrollTimeout;
2255
- var imagesCarousel = testimonialElement.querySelector('.testimonial__images');
2256
- var itemCount = imagesCarousel.querySelectorAll('img').length; // If we only have 1 item lets not bother doing anything else
2257
-
2258
- if (itemCount == 1) {
2259
- return false;
2260
- }
2261
-
2262
- testimonialElement.classList.add('testimonial--multi'); // Set where the buttons go to
2263
-
2264
- var setButtons = function setButtons(scrollTo) {
2265
- var nextButton = testimonialElement.querySelector('.btn-next');
2266
- var prevButton = testimonialElement.querySelector('.btn-prev');
2267
- nextButton.setAttribute('data-go', scrollTo + 1);
2268
- prevButton.setAttribute('data-go', scrollTo - 1);
2269
- nextButton.removeAttribute('disabled');
2270
- prevButton.removeAttribute('disabled');
2271
- if (scrollTo == 1) prevButton.setAttribute('disabled', true);else if (scrollTo == itemCount) nextButton.setAttribute('disabled', true);
2272
- }; // On scroll we need to make sure the buttons get corrected and the next testimonial is shown
2273
-
2274
-
2275
- imagesCarousel.addEventListener('scroll', function (e) {
2276
- clearTimeout(scrollTimeout);
2277
- scrollTimeout = setTimeout(function () {
2278
- var scrollWidth = imagesCarousel.scrollWidth;
2279
- var scrollHeight = imagesCarousel.scrollHeight;
2280
- var scrollLeft = imagesCarousel.scrollLeft;
2281
- var scrollDown = imagesCarousel.scrollTop;
2282
- var scrollTo = Math.round(scrollLeft / scrollWidth * itemCount) + 1; // Change in scroll direction
2283
-
2284
- if (scrollLeft == 0 && scrollDown != 0) scrollTo = Math.round(scrollDown / scrollHeight * itemCount) + 1;
2285
- testimonialElement.setAttribute('data-show', scrollTo);
2286
- setButtons(scrollTo);
2287
- }, 300);
2288
- }, false); // when the buttons are used we need to make sure the carousel scrolls to the correct place
2289
-
2290
- testimonialElement.addEventListener('click', function (e) {
2291
- for (var target = e.target; target && target != this; target = target.parentNode) {
2292
- if (target.matches('[data-go]')) {
2293
- var scrollTo = parseInt(target.getAttribute('data-go'));
2294
- var scrollDown = 0;
2295
- var scrollLeft = 0;
2296
- var scrollWidth = imagesCarousel.scrollWidth;
2297
- var scrollHeight = imagesCarousel.scrollHeight;
2298
- if (scrollWidth > scrollHeight) scrollLeft = Math.floor(scrollWidth * ((scrollTo - 1) / itemCount));else scrollDown = Math.floor(scrollHeight * ((scrollTo - 1) / itemCount)); // Trigger the scroll
2299
-
2300
- imagesCarousel.scroll({
2301
- top: scrollDown,
2302
- left: scrollLeft,
2303
- behavior: 'smooth'
2304
- });
2305
- break;
2306
- }
2307
- }
2308
- }, false);
2309
- }
2310
-
2311
- /* harmony default export */ var modules_testimonial = (testimonial);
2312
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Testimonial/Testimonial.vue?vue&type=script&lang=js&
2313
- //
2314
- //
2315
- //
2316
- //
2317
- //
2318
- //
2319
- //
2320
- //
2321
- //
2322
- //
2323
- //
2324
- //
2325
- //
2326
- //
2327
- //
2328
- //
2329
- //
2330
- //
2331
- //
2332
- //
2333
- //
2334
- //
2335
- //
2336
- //
2337
- //
2338
- //
2339
- //
2340
- //
2341
- //
2342
- //
2343
- //
2344
- //
2345
- //
2346
- //
2347
- //
2348
- //
2349
-
2350
- /* harmony default export */ var Testimonialvue_type_script_lang_js_ = ({
2351
- name: 'Testimonial',
2352
- props: {
2353
- items: {
2354
- type: Array,
2355
- required: true
2356
- },
2357
- background: {
2358
- type: String,
2359
- default: 'light',
2360
- required: false
2361
- }
2362
- },
2363
-
2364
- mounted() {
2365
- modules_testimonial(this.$refs.wrapper);
2366
- }
2367
-
2368
- });
2369
- ;// CONCATENATED MODULE: ./src/components/Testimonial/Testimonial.vue?vue&type=script&lang=js&
2370
- /* harmony default export */ var Testimonial_Testimonialvue_type_script_lang_js_ = (Testimonialvue_type_script_lang_js_);
2371
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Testimonial/Testimonial.vue?vue&type=style&index=0&lang=scss&
2372
- // extracted by mini-css-extract-plugin
2373
-
2374
- ;// CONCATENATED MODULE: ./src/components/Testimonial/Testimonial.vue?vue&type=style&index=0&lang=scss&
2375
-
2376
- ;// CONCATENATED MODULE: ./src/components/Testimonial/Testimonial.vue
2377
-
2378
-
2379
-
2380
- ;
2381
-
2382
-
2383
- /* normalize component */
2384
-
2385
- var Testimonial_component = normalizeComponent(
2386
- Testimonial_Testimonialvue_type_script_lang_js_,
2387
- Testimonialvue_type_template_id_c977152a_render,
2388
- Testimonialvue_type_template_id_c977152a_staticRenderFns,
2389
- false,
2390
- null,
2391
- null,
2392
- null
2393
-
2394
- )
2395
-
2396
- /* harmony default export */ var Testimonial = (Testimonial_component.exports);
2397
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=template&id=c4f4431a&
2398
- var PropertySearchbarvue_type_template_id_c4f4431a_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"container"},[_vm._t("default"),_c('div',{staticClass:"property-searchbar"},[_c('form',{staticClass:"row",attrs:{"action":_vm.formaction,"method":_vm.formmethod}},[_c('fieldset',{staticClass:"col-12 col-md-3"},[_c('Input',{ref:"search",attrs:{"inputClass":"input--locations","label":"Location","id":"location","options":_vm.locationsList(),"required":"","placeholder":"i.e. Newcastle or NE1"},on:{"keyupEvent":function($event){return _vm.locationKeyup.apply(void 0, arguments)}},model:{value:(_vm.locationSet),callback:function ($$v) {_vm.locationSet=$$v},expression:"locationSet"}}),_c('Input',{staticClass:"select--miles",attrs:{"label":"Miles","id":"miles","type":"select","options":_vm.distances}})],1),_c('fieldset',{staticClass:"col-12 col-md"},[_c('span',{staticClass:"form-label d-none d-md-block"},[_vm._v("Price range")]),_c('div',{staticClass:"row",attrs:{"data-input-range":""}},[_c('Input',{staticClass:"col-6",attrs:{"label":"Minimum price","id":"price-min","data-min":"true","type":"select","options":_vm.pricemin}}),_c('Input',{staticClass:"col-6",attrs:{"label":"Maximum price","id":"price-max","data-max":"true","type":"select","options":_vm.pricemax}})],1)]),_c('fieldset',{staticClass:"col-12 col-md"},[_c('span',{staticClass:"form-label d-none d-md-block"},[_vm._v("Number of beds")]),_c('div',{staticClass:"row",attrs:{"data-input-range":""}},[_c('Input',{staticClass:"col-6",attrs:{"label":"Minimum beds","id":"beds-min","data-min":"true","type":"select","options":_vm.bedsmin}}),_c('Input',{staticClass:"col-6",attrs:{"label":"Maximum beds","id":"beds-max","data-max":"true","type":"select","options":_vm.bedsmax}})],1)]),_c('fieldset',{staticClass:"col-12 col-md-2"},[_c('Input',{attrs:{"label":"Property type","id":"property-type","type":"select","options":_vm.propertytypes}})],1),_vm._m(0)])]),_vm._t("after")],2)}
2399
- var PropertySearchbarvue_type_template_id_c4f4431a_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"col-12 col-md mw-md-fit-content d-flex property-searchbar__btn"},[_c('button',{staticClass:"btn w-100 me-0",attrs:{"type":"submit","value":"submit"}},[_vm._v("Search")])])}]
2400
-
2401
-
2402
- ;// CONCATENATED MODULE: ./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=template&id=c4f4431a&
2403
-
2404
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=script&lang=js&
2405
- //
2406
- //
2407
- //
2408
- //
2409
- //
2410
- //
2411
- //
2412
- //
2413
- //
2414
- //
2415
- //
2416
- //
2417
- //
2418
- //
2419
- //
2420
- //
2421
- //
2422
- //
2423
- //
2424
- //
2425
- //
2426
- //
2427
- //
2428
- //
2429
- //
2430
- //
2431
- //
2432
- //
2433
- //
2434
- //
2435
- //
2436
- //
2437
- //
2438
- //
2439
- //
2440
- //
2441
- //
2442
- //
2443
- //
2444
-
2445
- /* harmony default export */ var PropertySearchbarvue_type_script_lang_js_ = ({
2446
- components: {
2447
- Input: Input
2448
- },
2449
- name: 'PropertySearchbar',
2450
- props: {
2451
- formaction: {
2452
- type: String,
2453
- required: false
2454
- },
2455
- formmethod: {
2456
- type: String,
2457
- required: false
2458
- },
2459
- location: {
2460
- type: String,
2461
- required: false
2462
- },
2463
- locations: {
2464
- type: Array,
2465
- required: false
2466
- },
2467
- distances: {
2468
- type: Array,
2469
- required: false,
2470
-
2471
- default() {
2472
- return [{
2473
- 'value': '0.25',
2474
- 'display': '+¼ mi'
2475
- }, {
2476
- 'value': '0.5',
2477
- 'display': '+½ mi'
2478
- }, {
2479
- 'value': '1',
2480
- 'display': '+1 mi'
2481
- }, {
2482
- 'value': '2',
2483
- 'display': '+2 mi'
2484
- }, {
2485
- 'value': '3',
2486
- 'display': '+3 mi'
2487
- }, {
2488
- 'value': '4',
2489
- 'display': '+4 mi'
2490
- }, {
2491
- 'value': '5',
2492
- 'display': '+5 mi'
2493
- }];
2494
- }
2495
-
2496
- },
2497
- pricemin: {
2498
- type: Array,
2499
- required: false,
2500
-
2501
- default() {
2502
- return [{
2503
- 'value': '0',
2504
- 'display': 'No min'
2505
- }, {
2506
- 'value': '50000',
2507
- 'display': '£50k min'
2508
- }, {
2509
- 'value': '75000',
2510
- 'display': '£75k min'
2511
- }, {
2512
- 'value': '100000',
2513
- 'display': '£100k min'
2514
- }, {
2515
- 'value': '150000',
2516
- 'display': '£150k min'
2517
- }, {
2518
- 'value': '200000',
2519
- 'display': '£200k min'
2520
- }, {
2521
- 'value': '250000',
2522
- 'display': '£250k min'
2523
- }];
2524
- }
2525
-
2526
- },
2527
- pricemax: {
2528
- type: Array,
2529
- required: false,
2530
-
2531
- default() {
2532
- return [{
2533
- 'value': 'any',
2534
- 'display': 'No max'
2535
- }, {
2536
- 'value': '50000',
2537
- 'display': '£50k max'
2538
- }, {
2539
- 'value': '75000',
2540
- 'display': '£75k max'
2541
- }, {
2542
- 'value': '100000',
2543
- 'display': '£100k max'
2544
- }, {
2545
- 'value': '150000',
2546
- 'display': '£150k max'
2547
- }, {
2548
- 'value': '200000',
2549
- 'display': '£200k max'
2550
- }, {
2551
- 'value': '250000',
2552
- 'display': '£250k max'
2553
- }];
2554
- }
2555
-
2556
- },
2557
- bedsmin: {
2558
- type: Array,
2559
- required: false,
2560
-
2561
- default() {
2562
- return [{
2563
- 'value': 'any',
2564
- 'display': 'No min'
2565
- }, {
2566
- 'value': '0',
2567
- 'display': 'Studio min'
2568
- }, {
2569
- 'value': '1',
2570
- 'display': '1 bed min'
2571
- }, {
2572
- 'value': '2',
2573
- 'display': '2 beds min'
2574
- }, {
2575
- 'value': '3',
2576
- 'display': '3 beds min'
2577
- }, {
2578
- 'value': '4',
2579
- 'display': '4 beds min'
2580
- }, {
2581
- 'value': '5',
2582
- 'display': '5 beds min'
2583
- }, {
2584
- 'value': '6',
2585
- 'display': '6 beds min'
2586
- }];
2587
- }
2588
-
2589
- },
2590
- bedsmax: {
2591
- type: Array,
2592
- required: false,
2593
-
2594
- default() {
2595
- return [{
2596
- 'value': 'any',
2597
- 'display': 'No max'
2598
- }, {
2599
- 'value': '0',
2600
- 'display': 'Studio max'
2601
- }, {
2602
- 'value': '1',
2603
- 'display': '1 bed max'
2604
- }, {
2605
- 'value': '2',
2606
- 'display': '2 beds max'
2607
- }, {
2608
- 'value': '3',
2609
- 'display': '3 beds max'
2610
- }, {
2611
- 'value': '4',
2612
- 'display': '4 beds max'
2613
- }, {
2614
- 'value': '5',
2615
- 'display': '5 beds max'
2616
- }, {
2617
- 'value': '6',
2618
- 'display': '6 beds max'
2619
- }];
2620
- }
2621
-
2622
- },
2623
- propertytypes: {
2624
- type: Array,
2625
- required: false,
2626
-
2627
- default() {
2628
- return [{
2629
- 'value': 'all',
2630
- 'display': 'Show all'
2631
- }, {
2632
- 'value': 'Bungalow',
2633
- 'display': 'Bungalow'
2634
- }, {
2635
- 'value': 'Character Property',
2636
- 'display': 'Character Property'
2637
- }, {
2638
- 'value': 'Commercial Property',
2639
- 'display': 'Commercial Property'
2640
- }, {
2641
- 'value': 'Flat / Apartment',
2642
- 'display': 'Flat / Apartment'
2643
- }, {
2644
- 'value': 'Garage / Parking',
2645
- 'display': 'Garage / Parking'
2646
- }, {
2647
- 'value': 'Guest House / Hotel',
2648
- 'display': 'Guest House / Hotel'
2649
- }, {
2650
- 'value': 'House',
2651
- 'display': 'House'
2652
- }, {
2653
- 'value': 'House / Flat Share',
2654
- 'display': 'House / Flat Share'
2655
- }, {
2656
- 'value': 'Land',
2657
- 'display': 'Land'
2658
- }, {
2659
- 'value': 'Mobile / Park Home',
2660
- 'display': 'Mobile / Park Home'
2661
- }, {
2662
- 'value': 'Private Halls',
2663
- 'display': 'Private Halls'
2664
- }, {
2665
- 'value': 'Retirement Property',
2666
- 'display': 'Retirement Property'
2667
- }];
2668
- }
2669
-
2670
- }
2671
- },
2672
-
2673
- data() {
2674
- return {
2675
- locationSave: ''
2676
- };
2677
- },
2678
-
2679
- methods: {
2680
- locationKeyup: function locationKeyup(event) {
2681
- this.$emit('locationKeyup', event);
2682
- }
2683
- },
2684
- computed: {
2685
- locationSet: {
2686
- get() {
2687
- if (this.locationSave) return this.locationSave;
2688
- return this.location;
2689
- },
2690
-
2691
- set(val) {
2692
- this.locationSave = val;
2693
- this.$emit('input', val);
2694
- }
2695
-
2696
- },
2697
-
2698
- locationsList() {
2699
- return () => {
2700
- if (this.locations) {
2701
- return this.locations;
2702
- }
2703
-
2704
- return [{
2705
- 'value': 'Newcastle'
2706
- }];
2707
- };
2708
- }
2709
-
2710
- }
2711
- });
2712
- ;// CONCATENATED MODULE: ./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=script&lang=js&
2713
- /* harmony default export */ var PropertySearchbar_PropertySearchbarvue_type_script_lang_js_ = (PropertySearchbarvue_type_script_lang_js_);
2714
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=style&index=0&lang=scss&
2715
- // extracted by mini-css-extract-plugin
2716
-
2717
- ;// CONCATENATED MODULE: ./src/components/PropertySearchbar/PropertySearchbar.vue?vue&type=style&index=0&lang=scss&
2718
-
2719
- ;// CONCATENATED MODULE: ./src/components/PropertySearchbar/PropertySearchbar.vue
2720
-
2721
-
2722
-
2723
- ;
2724
-
2725
-
2726
- /* normalize component */
2727
-
2728
- var PropertySearchbar_component = normalizeComponent(
2729
- PropertySearchbar_PropertySearchbarvue_type_script_lang_js_,
2730
- PropertySearchbarvue_type_template_id_c4f4431a_render,
2731
- PropertySearchbarvue_type_template_id_c4f4431a_staticRenderFns,
2732
- false,
2733
- null,
2734
- null,
2735
- null
2736
-
2737
- )
2738
-
2739
- /* harmony default export */ var PropertySearchbar = (PropertySearchbar_component.exports);
2740
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Nav/Nav.vue?vue&type=template&id=553f8a38&
2741
- var Navvue_type_template_id_553f8a38_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{ref:"wrapper",class:("nav" + (_vm.hasSecondarySlot?" has-secondary":''))},[_c('input',{staticClass:"d-none",attrs:{"type":"checkbox","name":"showMenu","id":"showMenu"}}),_c('input',{staticClass:"d-none",attrs:{"type":"checkbox","name":"showSearch","id":"showSearch"}}),_c('input',{staticClass:"d-none",attrs:{"type":"checkbox","name":"showAccount","id":"showAccount"}}),_c('div',{staticClass:"nav__mobile-bar"},[_c('div',{staticClass:"container"},[_c('div',{staticClass:"row"},[(_vm.hasLogoSlot)?_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_vm._t("logo")],2):_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_c('a',{staticClass:"text-decoration-none mb-0",attrs:{"href":"/"}},[_c('Logo',{staticClass:"pb-0",attrs:{"id":_vm.logo,"path":_vm.logopath,"desc":_vm.logotext}})],1)]),_vm._m(0)])])]),_c('div',{staticClass:"nav__inner"},[_c('div',{staticClass:"container"},[_c('div',{staticClass:"row"},[(_vm.hasLogoSlot)?_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_vm._t("logo")],2):_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_c('a',{staticClass:"text-decoration-none mb-0",attrs:{"href":"/"}},[_c('Logo',{staticClass:"pb-0",attrs:{"id":_vm.logo,"path":_vm.logopath,"desc":_vm.logotext}})],1)]),(_vm.hasSearchSlot)?_c('div',{staticClass:"col mw-fit-content nav__search-btn flex-row align-items-center"},[_c('label',{attrs:{"for":"showSearch"}},[_c('svg',{staticClass:"icon",attrs:{"viewBox":"0 0 32 32"}},[_c('title',[_vm._v("Search")]),_c('ellipse',{staticClass:"icon__outline",attrs:{"cx":"14.92","cy":"13.81","rx":"11.92","ry":"11.81"}}),_c('line',{staticClass:"icon__outline",attrs:{"x1":"22.68","y1":"22.75","x2":"30","y2":"30"}})])])]):_vm._e(),_vm._m(1),_c('div',{staticClass:"col-12 col-md nav__menu ms-auto flex-row align-items-center"},[_vm._t("default")],2),(_vm.hasAccountSlot)?_c('div',{staticClass:"col nav__account-btn flex-row align-items-center"},[_c('label',{attrs:{"for":"showAccount"}},[_c('svg',{staticClass:"icon",attrs:{"viewBox":"0 0 28 28"}},[_c('use',{attrs:{"xlink:href":"/svg/icons.svg#icon-account"}})]),_c('span',[_vm._v("My account")])])]):_vm._e(),(_vm.btnlink)?_c('div',{staticClass:"col-12 col-md nav__btn mw-md-fit-content flex-row align-items-center"},[_c('a',{staticClass:"btn me-0",attrs:{"href":_vm.btnlink},domProps:{"innerHTML":_vm._s(_vm.btntext)}})]):_vm._e()])]),(_vm.hasSecondarySlot)?_c('div',{staticClass:"nav__menu--secondary"},[_c('div',{staticClass:"container"},[_vm._t("secondary")],2)]):_vm._e(),(_vm.hasSearchSlot)?_c('div',{staticClass:"nav__menu--search"},[_c('div',{staticClass:"bg-gradient pt-4"},[_c('div',{staticClass:"container"},[_vm._t("search")],2)])]):_vm._e()]),(_vm.hasAccountSlot)?_c('div',{staticClass:"nav__menu--account"},[_c('div',{staticClass:"container"},[_c('div',{staticClass:"row mb-4"},[(_vm.hasLogoSlot)?_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_vm._t("logo")],2):_c('div',{staticClass:"col mw-md-fit-content nav__logo"},[_c('a',{staticClass:"text-decoration-none mb-0",attrs:{"href":"/"}},[_c('Logo',{staticClass:"pb-0",attrs:{"id":_vm.logo,"path":_vm.logopath,"desc":_vm.logotext}})],1)]),_vm._m(2)])]),_c('div',{staticClass:"container"},[_vm._t("account")],2)]):_vm._e(),_c('span',{staticClass:"nav__bg"})])}
2742
- var Navvue_type_template_id_553f8a38_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[_c('label',{attrs:{"for":"showMenu"}},[_vm._v("Menu")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[_c('label',{attrs:{"for":"showMenu"}},[_vm._v("Menu")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[_c('label',{attrs:{"for":"showAccount"}},[_vm._v("Account")])])}]
2743
-
2744
-
2745
- ;// CONCATENATED MODULE: ./src/components/Nav/Nav.vue?vue&type=template&id=553f8a38&
2746
-
2747
- ;// CONCATENATED MODULE: ./assets/js/modules/nav.js
2748
- var navbar = element => {
2749
- Array.from(element.querySelectorAll('details')).forEach((detail, index) => {
2750
- detail.addEventListener('mouseenter', function (e) {
2751
- if (window.matchMedia('(min-width: 62em)').matches) detail.setAttribute('open', 'true');
2752
- }, false);
2753
- detail.addEventListener('mouseleave', function (e) {
2754
- if (window.matchMedia('(min-width: 62em)').matches) detail.removeAttribute('open');
2755
- }, false);
2756
- });
2757
- var observer = new IntersectionObserver(_ref => {
2758
- var [e] = _ref;
2759
- return e.target.classList.toggle("is-stuck", e.intersectionRatio < 1);
2760
- }, {
2761
- threshold: [1]
2762
- });
2763
- observer.observe(element);
2764
- };
2765
-
2766
- /* harmony default export */ var nav = (navbar);
2767
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Nav/Nav.vue?vue&type=script&lang=js&
2768
- //
2769
- //
2770
- //
2771
- //
2772
- //
2773
- //
2774
- //
2775
- //
2776
- //
2777
- //
2778
- //
2779
- //
2780
- //
2781
- //
2782
- //
2783
- //
2784
- //
2785
- //
2786
- //
2787
- //
2788
- //
2789
- //
2790
- //
2791
- //
2792
- //
2793
- //
2794
- //
2795
- //
2796
- //
2797
- //
2798
- //
2799
- //
2800
- //
2801
- //
2802
- //
2803
- //
2804
- //
2805
- //
2806
- //
2807
- //
2808
- //
2809
- //
2810
- //
2811
- //
2812
- //
2813
- //
2814
- //
2815
- //
2816
- //
2817
- //
2818
- //
2819
- //
2820
- //
2821
- //
2822
- //
2823
- //
2824
- //
2825
- //
2826
- //
2827
- //
2828
- //
2829
- //
2830
- //
2831
- //
2832
- //
2833
- //
2834
- //
2835
- //
2836
- //
2837
- //
2838
- //
2839
- //
2840
- //
2841
- //
2842
- //
2843
- //
2844
- //
2845
- //
2846
- //
2847
- //
2848
- //
2849
- //
2850
- //
2851
- //
2852
- //
2853
- //
2854
- //
2855
- //
2856
- //
2857
- //
2858
- //
2859
- //
2860
- //
2861
- //
2862
- //
2863
- //
2864
- //
2865
- //
2866
- //
2867
- //
2868
- //
2869
- //
2870
- //
2871
- //
2872
- //
2873
- //
2874
- //
2875
- //
2876
- //
2877
- //
2878
- //
2879
- //
2880
- //
2881
- //
2882
- //
2883
- //
2884
- //
2885
- //
2886
- //
2887
- //
2888
- //
2889
-
2890
-
2891
-
2892
-
2893
- /* harmony default export */ var Navvue_type_script_lang_js_ = ({
2894
- components: {
2895
- Input: Input,
2896
- Logo: Logo,
2897
- Icon: Icon
2898
- },
2899
- name: 'Nav',
2900
- props: {
2901
- logo: {
2902
- type: String,
2903
- required: false
2904
- },
2905
- logotext: {
2906
- type: String,
2907
- required: false
2908
- },
2909
- logopath: {
2910
- type: String,
2911
- required: false
2912
- },
2913
- search: {
2914
- type: String,
2915
- required: false
2916
- },
2917
- btnlink: {
2918
- type: String,
2919
- required: false
2920
- },
2921
- btntext: {
2922
- type: String,
2923
- required: false
2924
- },
2925
- propertylink: {
2926
- type: String,
2927
- required: false
2928
- },
2929
- movebutlerlink: {
2930
- type: String,
2931
- required: false
2932
- },
2933
- iamsoldlink: {
2934
- type: String,
2935
- required: false
2936
- }
2937
- },
2938
-
2939
- data() {
2940
- return {
2941
- locationSave: ''
2942
- };
2943
- },
2944
-
2945
- methods: {
2946
- subIsActive(input) {
2947
- var paths = Array.isArray(input) ? input : [input];
2948
- return paths.some(path => {
2949
- return this.$route.path.indexOf(path) === 0; // current path starts with this path string
2950
- });
2951
- }
2952
-
2953
- },
2954
- computed: {
2955
- hasLogoSlot() {
2956
- return !!this.$slots.logo;
2957
- },
2958
-
2959
- hasSecondarySlot() {
2960
- return !!this.$slots.secondary;
2961
- },
2962
-
2963
- hasSearchSlot() {
2964
- return !!this.$slots.search;
2965
- },
2966
-
2967
- hasAccountSlot() {
2968
- return !!this.$slots.account;
2969
- },
2970
-
2971
- isMarketplace() {
2972
- return this.$vnode.data.staticClass && this.$vnode.data.staticClass.includes('nav--marketplace') ? true : false;
2973
- }
2974
-
2975
- },
2976
-
2977
- mounted() {
2978
- this.$nextTick(function () {
2979
- nav(this.$refs.wrapper);
2980
- });
2981
- }
2982
-
2983
- });
2984
- ;// CONCATENATED MODULE: ./src/components/Nav/Nav.vue?vue&type=script&lang=js&
2985
- /* harmony default export */ var Nav_Navvue_type_script_lang_js_ = (Navvue_type_script_lang_js_);
2986
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Nav/Nav.vue?vue&type=style&index=0&lang=scss&
2987
- // extracted by mini-css-extract-plugin
2988
-
2989
- ;// CONCATENATED MODULE: ./src/components/Nav/Nav.vue?vue&type=style&index=0&lang=scss&
2990
-
2991
- ;// CONCATENATED MODULE: ./src/components/Nav/Nav.vue
2992
-
2993
-
2994
-
2995
- ;
2996
-
2997
-
2998
- /* normalize component */
2999
-
3000
- var Nav_component = normalizeComponent(
3001
- Nav_Navvue_type_script_lang_js_,
3002
- Navvue_type_template_id_553f8a38_render,
3003
- Navvue_type_template_id_553f8a38_staticRenderFns,
3004
- false,
3005
- null,
3006
- null,
3007
- null
3008
-
3009
- )
3010
-
3011
- /* harmony default export */ var Nav = (Nav_component.exports);
3012
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Drawer/Drawer.vue?vue&type=template&id=67f17154&
3013
- var Drawervue_type_template_id_67f17154_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper"},[_c('input',{staticClass:"d-none",attrs:{"type":"checkbox","name":"showDrawer","id":"showDrawer"}}),_c('div',{staticClass:"drawer__btn pb-0"},[_c('div',{staticClass:"container text-end pb-0"},[_c('label',{staticClass:"btn btn-secondary me-0",attrs:{"for":"showDrawer"}},[_vm._v(_vm._s(_vm.label))])])]),_c('div',{ref:"drawer",staticClass:"drawer",attrs:{"id":"drawer"}},[_vm._m(0),_vm._t("default")],2),_c('hr',{attrs:{"id":"drawer-end"}})])}
3014
- var Drawervue_type_template_id_67f17154_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"container text-end pb-0"},[_c('label',{staticClass:"btn btn-tertiary mb-0 me-0 py-1 px-2",attrs:{"for":"showDrawer"}},[_c('span',{staticClass:"visually-hidden"},[_vm._v("Close")]),_vm._v("✕")])])}]
3015
-
3016
-
3017
- ;// CONCATENATED MODULE: ./src/components/Drawer/Drawer.vue?vue&type=template&id=67f17154&
3018
-
3019
- ;// CONCATENATED MODULE: ./assets/js/modules/drawer.js
3020
- var drawer = element => {
3021
- var observer = new IntersectionObserver(function (_ref) {
3022
- var [e] = _ref;
3023
- e.target.classList.toggle("in-view", e.intersectionRatio > 0);
3024
- document.getElementById('showDrawer').checked = false;
3025
- }, {
3026
- threshold: [1]
3027
- });
3028
- var el = document.getElementById('drawer-end');
3029
- observer.observe(el);
3030
- };
3031
-
3032
- /* harmony default export */ var modules_drawer = (drawer);
3033
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Drawer/Drawer.vue?vue&type=script&lang=js&
3034
- //
3035
- //
3036
- //
3037
- //
3038
- //
3039
- //
3040
- //
3041
- //
3042
- //
3043
- //
3044
- //
3045
- //
3046
- //
3047
- //
3048
- //
3049
- //
3050
- //
3051
- //
3052
- //
3053
- //
3054
- //
3055
- //
3056
- //
3057
-
3058
- /* harmony default export */ var Drawervue_type_script_lang_js_ = ({
3059
- name: 'Header',
3060
- props: {
3061
- label: {
3062
- type: String,
3063
- required: true
3064
- }
3065
- },
3066
-
3067
- mounted() {
3068
- this.$nextTick(function () {
3069
- var element = this.$refs.wrapper;
3070
- var fragment = document.createDocumentFragment();
3071
- Array.from(element.childNodes).forEach(child => fragment.appendChild(child));
3072
- element.parentNode.insertBefore(fragment, element);
3073
- element.parentNode.removeChild(element);
3074
- this.$nextTick(function () {
3075
- modules_drawer(this.$refs.drawer);
3076
- });
3077
- });
3078
- }
3079
-
3080
- });
3081
- ;// CONCATENATED MODULE: ./src/components/Drawer/Drawer.vue?vue&type=script&lang=js&
3082
- /* harmony default export */ var Drawer_Drawervue_type_script_lang_js_ = (Drawervue_type_script_lang_js_);
3083
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Drawer/Drawer.vue?vue&type=style&index=0&lang=scss&
3084
- // extracted by mini-css-extract-plugin
3085
-
3086
- ;// CONCATENATED MODULE: ./src/components/Drawer/Drawer.vue?vue&type=style&index=0&lang=scss&
3087
-
3088
- ;// CONCATENATED MODULE: ./src/components/Drawer/Drawer.vue
3089
-
3090
-
3091
-
3092
- ;
3093
-
3094
-
3095
- /* normalize component */
3096
-
3097
- var Drawer_component = normalizeComponent(
3098
- Drawer_Drawervue_type_script_lang_js_,
3099
- Drawervue_type_template_id_67f17154_render,
3100
- Drawervue_type_template_id_67f17154_staticRenderFns,
3101
- false,
3102
- null,
3103
- null,
3104
- null
3105
-
3106
- )
3107
-
3108
- /* harmony default export */ var Drawer = (Drawer_component.exports);
3109
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Modal/Modal.vue?vue&type=template&id=2d34419f&
3110
- var Modalvue_type_template_id_2d34419f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"modal",staticClass:"modal",attrs:{"id":_vm.id,"role":"dialog","modal":"true"}},[_c('a',{attrs:{"href":("#" + (_vm.returnid?_vm.returnid:'')),"tabindex":"-1"}},[_c('span',{staticClass:"visually-hidden"},[_vm._v("Close")])]),_c('div',{staticClass:"modal__outer"},[_c('a',{staticClass:"btn btn-tertiary py-1 px-2",attrs:{"href":("#" + (_vm.returnid?_vm.returnid:''))}},[_c('span',{staticClass:"visually-hidden"},[_vm._v("Close")]),_vm._v("✕")]),_c('div',{staticClass:"modal__inner"},[_vm._t("default")],2)]),_c('button',{staticClass:"modal__dock--left btn btn-prev",attrs:{"tabindex":"-1"}},[_vm._v("Left")]),_c('button',{staticClass:"modal__dock--right btn btn-next",attrs:{"tabindex":"-1"}},[_vm._v("Right")])])}
3111
- var Modalvue_type_template_id_2d34419f_staticRenderFns = []
3112
-
3113
-
3114
- ;// CONCATENATED MODULE: ./assets/js/modules/modal.js
3115
- var modal = element => {
3116
- var links = element.querySelectorAll('.modal__outer a, .modal__outer button');
3117
- var firstLink = links[0];
3118
- var lastLink = links[links.length - 1];
3119
- var modalID = element.getAttribute('id');
3120
-
3121
- var closeModal = function closeModal() {
3122
- var button = document.querySelector('[href="' + window.location.hash + '"]');
3123
- button.focus();
3124
- window.location.hash = "close";
3125
- history.replaceState("", document.title, window.location.pathname + window.location.search); // If there is more than one video lets make sure there is only one playing at a time.
3126
-
3127
- if (typeof window.player != "undefined" && typeof window.player.pauseVideo == "function") window.player.pauseVideo();
3128
- }; // Trap the tab focus inside
3129
-
3130
-
3131
- element.addEventListener('keydown', function (e) {
3132
- if (e.key === "Tab" && e.shiftKey && document.activeElement == firstLink) {
3133
- e.preventDefault();
3134
- lastLink.focus();
3135
- } else if (e.key === "Tab" && !e.shiftKey && document.activeElement == lastLink) {
3136
- e.preventDefault();
3137
- firstLink.focus();
3138
- }
3139
- }); // ESC will close the open modal
3140
-
3141
- document.addEventListener("keydown", function (e) {
3142
- if (e.key === "Escape" && document.querySelector('.modal:target')) closeModal();
3143
- });
3144
- element.addEventListener('click', function (e) {
3145
- for (var target = e.target; target && target != this; target = target.parentNode) {
3146
- // Close links will close the model by default but we want to remove the hash link also
3147
- if (target.matches('[href="#close"]')) {
3148
- e.preventDefault();
3149
- closeModal();
3150
- break;
3151
- } // Dock the modal to the right or left to make the content behind readable
3152
- else if (target.matches('.modal__dock--right')) {
3153
- e.preventDefault();
3154
- if (!element.classList.contains('modal--left')) element.classList.add('modal--right');
3155
- element.classList.remove('modal--left');
3156
- break;
3157
- } else if (target.matches('.modal__dock--left')) {
3158
- e.preventDefault();
3159
- if (!element.classList.contains('modal--right')) element.classList.add('modal--left');
3160
- element.classList.remove('modal--right');
3161
- break;
3162
- }
3163
- }
3164
- });
3165
-
3166
- function locationHashChanged() {
3167
- if (location.hash === '#' + modalID) {
3168
- console.log("Modal is now open");
3169
- var videoButton = document.querySelector('.modal:target .modal__inner > .youtube-embed:first-child:last-child a');
3170
- console.log(videoButton);
3171
-
3172
- if (videoButton) {
3173
- videoButton.click();
3174
- }
3175
- }
3176
- }
3177
-
3178
- window.onhashchange = locationHashChanged;
3179
- };
3180
-
3181
- /* harmony default export */ var modules_modal = (modal);
3182
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Modal/Modal.vue?vue&type=script&lang=js&
3183
- //
3184
- //
3185
- //
3186
- //
3187
- //
3188
- //
3189
- //
3190
- //
3191
- //
3192
- //
3193
- //
3194
- //
3195
- //
3196
- //
3197
- //
3198
- //
3199
- //
3200
- //
3201
-
3202
- /* harmony default export */ var Modalvue_type_script_lang_js_ = ({
3203
- name: 'Modal',
3204
- props: {
3205
- id: {
3206
- type: String,
3207
- required: true
3208
- },
3209
- returnid: {
3210
- type: String,
3211
- default: 'close',
3212
- required: false
3213
- }
3214
- },
3215
-
3216
- mounted() {
3217
- this.$nextTick(function () {
3218
- modules_modal(this.$refs.modal);
3219
- });
3220
- }
3221
-
3222
- });
3223
- ;// CONCATENATED MODULE: ./src/components/Modal/Modal.vue?vue&type=script&lang=js&
3224
- /* harmony default export */ var Modal_Modalvue_type_script_lang_js_ = (Modalvue_type_script_lang_js_);
3225
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Modal/Modal.vue?vue&type=style&index=0&lang=scss&
3226
- // extracted by mini-css-extract-plugin
3227
-
3228
- ;// CONCATENATED MODULE: ./src/components/Modal/Modal.vue?vue&type=style&index=0&lang=scss&
3229
-
3230
- ;// CONCATENATED MODULE: ./src/components/Modal/Modal.vue
3231
-
3232
-
3233
-
3234
- ;
3235
-
3236
-
3237
- /* normalize component */
3238
-
3239
- var Modal_component = normalizeComponent(
3240
- Modal_Modalvue_type_script_lang_js_,
3241
- Modalvue_type_template_id_2d34419f_render,
3242
- Modalvue_type_template_id_2d34419f_staticRenderFns,
3243
- false,
3244
- null,
3245
- null,
3246
- null
3247
-
3248
- )
3249
-
3250
- /* harmony default export */ var Modal = (Modal_component.exports);
3251
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Stepper/Stepper.vue?vue&type=template&id=538c1cae&
3252
- var Steppervue_type_template_id_538c1cae_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"container"},[_c('nav',{staticClass:"stepper",attrs:{"aria-label":_vm.label?_vm.label:'Progress'}},[(_vm.label)?_c('span',{staticClass:"h6 stepper__start"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('ol',{staticClass:"list-unstyled"},[_vm._t("default")],2),_c('span',{staticClass:"h6 stepper__end"},[_vm._v(_vm._s(_vm.endlabel))])])])}
3253
- var Steppervue_type_template_id_538c1cae_staticRenderFns = []
3254
-
3255
-
3256
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Stepper/Stepper.vue?vue&type=script&lang=js&
3257
- //
3258
- //
3259
- //
3260
- //
3261
- //
3262
- //
3263
- //
3264
- //
3265
- //
3266
- //
3267
- //
3268
- //
3269
- //
3270
- //
3271
- //
3272
- //
3273
- //
3274
- /* harmony default export */ var Steppervue_type_script_lang_js_ = ({
3275
- name: 'Stepper',
3276
- props: {
3277
- label: {
3278
- type: String,
3279
- required: false
3280
- },
3281
- endlabel: {
3282
- type: String,
3283
- required: false,
3284
- default: "Complete"
3285
- }
3286
- }
3287
- });
3288
- ;// CONCATENATED MODULE: ./src/components/Stepper/Stepper.vue?vue&type=script&lang=js&
3289
- /* harmony default export */ var Stepper_Steppervue_type_script_lang_js_ = (Steppervue_type_script_lang_js_);
3290
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Stepper/Stepper.vue?vue&type=style&index=0&lang=scss&
3291
- // extracted by mini-css-extract-plugin
3292
-
3293
- ;// CONCATENATED MODULE: ./src/components/Stepper/Stepper.vue?vue&type=style&index=0&lang=scss&
3294
-
3295
- ;// CONCATENATED MODULE: ./src/components/Stepper/Stepper.vue
3296
-
3297
-
3298
-
3299
- ;
3300
-
3301
-
3302
- /* normalize component */
3303
-
3304
- var Stepper_component = normalizeComponent(
3305
- Stepper_Steppervue_type_script_lang_js_,
3306
- Steppervue_type_template_id_538c1cae_render,
3307
- Steppervue_type_template_id_538c1cae_staticRenderFns,
3308
- false,
3309
- null,
3310
- null,
3311
- null
3312
-
3313
- )
3314
-
3315
- /* harmony default export */ var Stepper = (Stepper_component.exports);
3316
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Stepper/Step.vue?vue&type=template&id=d80b9c98&
3317
- var Stepvue_type_template_id_d80b9c98_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('a',{class:("" + (_vm.status?'bg-'+_vm.status:'') + (typeof _vm.current != 'undefined'?'current':'')),attrs:{"href":_vm.url,"aria-current":typeof _vm.current != 'undefined'?true:false}},[_c('span',[_vm._t("default")],2),(_vm.status)?_c('em',{staticClass:"visually-hidden"},[_vm._v(" - status: "+_vm._s(_vm.status))]):_vm._e()])])}
3318
- var Stepvue_type_template_id_d80b9c98_staticRenderFns = []
3319
-
3320
-
3321
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Stepper/Step.vue?vue&type=script&lang=js&
3322
- //
3323
- //
3324
- //
3325
- //
3326
- //
3327
- //
3328
- //
3329
- //
3330
- //
3331
- /* harmony default export */ var Stepvue_type_script_lang_js_ = ({
3332
- name: 'Stepper',
3333
- props: {
3334
- url: {
3335
- type: String,
3336
- required: false
3337
- },
3338
- status: {
3339
- type: String,
3340
- required: false
3341
- },
3342
- current: {
3343
- type: String,
3344
- required: false
3345
- }
3346
- }
3347
- });
3348
- ;// CONCATENATED MODULE: ./src/components/Stepper/Step.vue?vue&type=script&lang=js&
3349
- /* harmony default export */ var Stepper_Stepvue_type_script_lang_js_ = (Stepvue_type_script_lang_js_);
3350
- ;// CONCATENATED MODULE: ./src/components/Stepper/Step.vue
3351
-
3352
-
3353
-
3354
-
3355
-
3356
- /* normalize component */
3357
- ;
3358
- var Step_component = normalizeComponent(
3359
- Stepper_Stepvue_type_script_lang_js_,
3360
- Stepvue_type_template_id_d80b9c98_render,
3361
- Stepvue_type_template_id_d80b9c98_staticRenderFns,
3362
- false,
3363
- null,
3364
- null,
3365
- null
3366
-
3367
- )
3368
-
3369
- /* harmony default export */ var Step = (Step_component.exports);
3370
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Tabs/Tabs.vue?vue&type=template&id=8b015576&
3371
- var Tabsvue_type_template_id_8b015576_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",staticClass:"container tabs__container"},[_vm._l((_vm.tabLinks()),function(value,index){return _c('input',{key:index,staticClass:"tab__input",attrs:{"type":"radio","name":value.name,"id":value.id},domProps:{"checked":index == 0? 'checked':''}})}),_c('div',{staticClass:"tabs__links"},_vm._l((_vm.tabLinks()),function(value,index){return _c('label',{key:index,staticClass:"link",attrs:{"for":value.id},on:{"click":function($event){return _vm.openTab(index)}}},[_vm._v(" "+_vm._s(value.tabTitle)+" ")])}),0),_c('div',{staticClass:"tabs"},[_vm._t("default")],2)],2)}
3372
- var Tabsvue_type_template_id_8b015576_staticRenderFns = []
3373
-
3374
-
3375
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Tabs/Tabs.vue?vue&type=script&lang=js&
3376
- //
3377
- //
3378
- //
3379
- //
3380
- //
3381
- //
3382
- //
3383
- //
3384
- //
3385
- //
3386
- //
3387
- //
3388
- //
3389
- //
3390
- //
3391
- //
3392
- //
3393
- //
3394
- //
3395
- //
3396
- /* harmony default export */ var Tabsvue_type_script_lang_js_ = ({
3397
- name: 'Tabs',
3398
-
3399
- data() {
3400
- return {
3401
- tabsID: 'tabs_' + Math.random().toString(36).substr(2, 9)
3402
- };
3403
- },
3404
-
3405
- computed: {
3406
- tabLinks() {
3407
- return () => {
3408
- var tabLinks = [];
3409
- var i = 1;
3410
-
3411
- for (var [key, value] of Object.entries(this.$slots.default)) {
3412
- // Check if the value in the object is actually a tab and has the correct data
3413
- if (value.componentOptions && value.componentOptions.propsData && value.componentOptions.propsData.title) {
3414
- var tabTitle = value.componentOptions.propsData.title;
3415
- var tab = {
3416
- name: this.tabsID,
3417
- id: this.tabsID + "_tab" + i++,
3418
- tabTitle: tabTitle
3419
- };
3420
- tabLinks.push(tab);
3421
- }
3422
- }
3423
-
3424
- return tabLinks;
3425
- };
3426
- }
3427
-
3428
- },
3429
- methods: {
3430
- openTab: function openTab(index) {
3431
- var i = 0;
3432
-
3433
- for (var [key, value] of Object.entries(this.$slots.default)) {
3434
- if (value.componentOptions && value.componentOptions.propsData && value.componentOptions.propsData.title) {
3435
- if (i == index) {
3436
- value.componentInstance._data.show = true;
3437
- }
3438
-
3439
- i++;
3440
- }
3441
- }
3442
- }
3443
- }
3444
- });
3445
- ;// CONCATENATED MODULE: ./src/components/Tabs/Tabs.vue?vue&type=script&lang=js&
3446
- /* harmony default export */ var Tabs_Tabsvue_type_script_lang_js_ = (Tabsvue_type_script_lang_js_);
3447
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Tabs/Tabs.vue?vue&type=style&index=0&lang=scss&
3448
- // extracted by mini-css-extract-plugin
3449
-
3450
- ;// CONCATENATED MODULE: ./src/components/Tabs/Tabs.vue?vue&type=style&index=0&lang=scss&
3451
-
3452
- ;// CONCATENATED MODULE: ./src/components/Tabs/Tabs.vue
3453
-
3454
-
3455
-
3456
- ;
3457
-
3458
-
3459
- /* normalize component */
3460
-
3461
- var Tabs_component = normalizeComponent(
3462
- Tabs_Tabsvue_type_script_lang_js_,
3463
- Tabsvue_type_template_id_8b015576_render,
3464
- Tabsvue_type_template_id_8b015576_staticRenderFns,
3465
- false,
3466
- null,
3467
- null,
3468
- null
3469
-
3470
- )
3471
-
3472
- /* harmony default export */ var Tabs = (Tabs_component.exports);
3473
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Tabs/Tab.vue?vue&type=template&id=2fb8b28a&
3474
- var Tabvue_type_template_id_2fb8b28a_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:"tab"},[_vm._t("default")],2):_vm._e()}
3475
- var Tabvue_type_template_id_2fb8b28a_staticRenderFns = []
3476
-
3477
-
3478
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Tabs/Tab.vue?vue&type=script&lang=js&
3479
- //
3480
- //
3481
- //
3482
- //
3483
- //
3484
- //
3485
- /* harmony default export */ var Tabvue_type_script_lang_js_ = ({
3486
- name: 'Tab',
3487
- props: {
3488
- title: {
3489
- type: String,
3490
- required: true
3491
- },
3492
- lazy: {
3493
- type: Boolean,
3494
- required: false
3495
- }
3496
- },
3497
-
3498
- data() {
3499
- return {
3500
- show: this.lazy ? false : true
3501
- };
3502
- }
3503
-
3504
- });
3505
- ;// CONCATENATED MODULE: ./src/components/Tabs/Tab.vue?vue&type=script&lang=js&
3506
- /* harmony default export */ var Tabs_Tabvue_type_script_lang_js_ = (Tabvue_type_script_lang_js_);
3507
- ;// CONCATENATED MODULE: ./src/components/Tabs/Tab.vue
3508
-
3509
-
3510
-
3511
-
3512
-
3513
- /* normalize component */
3514
- ;
3515
- var Tab_component = normalizeComponent(
3516
- Tabs_Tabvue_type_script_lang_js_,
3517
- Tabvue_type_template_id_2fb8b28a_render,
3518
- Tabvue_type_template_id_2fb8b28a_staticRenderFns,
3519
- false,
3520
- null,
3521
- null,
3522
- null
3523
-
3524
- )
3525
-
3526
- /* harmony default export */ var Tab = (Tab_component.exports);
3527
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Alert/Alert.vue?vue&type=template&id=451f0c28&
3528
- var Alertvue_type_template_id_451f0c28_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"wrapper",class:("container alert pb-0 " + (_vm.dismissible?'alert--dismissible fade show':'')),style:(_vm.timeout?("--animation-length: " + _vm.timeout + "ms"):''),attrs:{"data-timeout":_vm.timeout}},[_c('div',{class:("alert__inner bg-" + _vm.colour),attrs:{"role":"alert"}},[(_vm.dismissible)?_c('button',{staticClass:"btn-close",attrs:{"type":"button","data-bs-dismiss":"alert","aria-label":"Close"}}):_vm._e(),_vm._t("default")],2)])}
3529
- var Alertvue_type_template_id_451f0c28_staticRenderFns = []
3530
-
3531
-
3532
- ;// CONCATENATED MODULE: ./assets/js/modules/alert.js
3533
- function alert_alert(element) {
3534
- // Create a dissmissable button
3535
- element.addEventListener('click', function (e) {
3536
- for (var target = e.target; target && target != this; target = target.parentNode) {
3537
- if (target.matches('.btn-close')) {
3538
- e.preventDefault();
3539
- element.classList.remove('show');
3540
- setTimeout(function () {
3541
- element.remove();
3542
- }, 300); // Execute something() 1 second later.
3543
-
3544
- break;
3545
- }
3546
- }
3547
- }, false); // Self disappearing alert
3548
-
3549
- if (element.hasAttribute('data-timeout')) {
3550
- var timeOut = element.getAttribute('data-timeout');
3551
- setTimeout(function () {
3552
- element.classList.remove('show');
3553
- setTimeout(function () {
3554
- element.remove();
3555
- }, 300); // Execute something() 1 second later.
3556
- }, timeOut); // Execute something() 1 second later.
3557
- } // Create an alert holder thats fixed to the bottom of the page, alerts with the class of alert--fix are then moved to this area. Creating a fixed but scrollable area that alerts can be stacked up on.
3558
-
3559
-
3560
- if (!document.querySelector('.alert__holder')) {
3561
- var bodyElement = document.getElementsByTagName("BODY")[0];
3562
- var newDiv = document.createElement("div");
3563
- newDiv.classList.add('alert__holder');
3564
- if (document.querySelector('main')) document.querySelector('main').appendChild(newDiv);else document.body.appendChild(newDiv);
3565
- }
3566
-
3567
- var alertHolder = document.querySelector('.alert__holder');
3568
-
3569
- if (element.classList.contains('alert--fixed') && !element.parentNode.classList.contains('alert__wrapper')) {
3570
- alertHolder.appendChild(element);
3571
- }
3572
- }
3573
-
3574
- /* harmony default export */ var modules_alert = (alert_alert);
3575
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Alert/Alert.vue?vue&type=script&lang=js&
3576
- //
3577
- //
3578
- //
3579
- //
3580
- //
3581
- //
3582
- //
3583
- //
3584
- //
3585
- //
3586
- //
3587
- //
3588
- //
3589
-
3590
- /* harmony default export */ var Alertvue_type_script_lang_js_ = ({
3591
- name: 'Alert',
3592
- props: {
3593
- dismissible: {
3594
- type: String | Boolean,
3595
- required: false,
3596
- default: false
3597
- },
3598
- colour: {
3599
- type: String,
3600
- required: false,
3601
- default: 'primary'
3602
- },
3603
- timeout: {
3604
- type: String | Number,
3605
- required: false
3606
- }
3607
- },
3608
-
3609
- mounted() {
3610
- modules_alert(this.$refs.wrapper);
3611
- }
3612
-
3613
- });
3614
- ;// CONCATENATED MODULE: ./src/components/Alert/Alert.vue?vue&type=script&lang=js&
3615
- /* harmony default export */ var Alert_Alertvue_type_script_lang_js_ = (Alertvue_type_script_lang_js_);
3616
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65[0].rules[0].use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65[0].rules[0].use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Alert/Alert.vue?vue&type=style&index=0&lang=scss&
3617
- // extracted by mini-css-extract-plugin
3618
-
3619
- ;// CONCATENATED MODULE: ./src/components/Alert/Alert.vue?vue&type=style&index=0&lang=scss&
3620
-
3621
- ;// CONCATENATED MODULE: ./src/components/Alert/Alert.vue
3622
-
3623
-
3624
-
3625
- ;
3626
-
3627
-
3628
- /* normalize component */
3629
-
3630
- var Alert_component = normalizeComponent(
3631
- Alert_Alertvue_type_script_lang_js_,
3632
- Alertvue_type_template_id_451f0c28_render,
3633
- Alertvue_type_template_id_451f0c28_staticRenderFns,
3634
- false,
3635
- null,
3636
- null,
3637
- null
3638
-
3639
- )
3640
-
3641
- /* harmony default export */ var Alert = (Alert_component.exports);
3642
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"76182ed5-vue-loader-template"}!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/NoteFeed/NoteFeed.vue?vue&type=template&id=d99a9532&
3643
- var NoteFeedvue_type_template_id_d99a9532_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"container note-feed mb-2"},[(_vm.title)?_c('span',{staticClass:"h3",domProps:{"innerHTML":_vm._s(_vm.title)}}):_vm._e(),_c('Table',_vm._b({staticClass:"mb-0",attrs:{"fields":[{ key: 'date_added' },{ key: 'user' },{ key: 'note' }],"items":_vm.itemsData}},'Table',_vm.$props,false)),_c('form',{attrs:{"action":_vm.action,"method":_vm.method},on:{"submit":function($event){$event.preventDefault();return _vm.submitForm.apply(void 0, arguments)}}},[_c('input',{attrs:{"type":"hidden","name":"user"},domProps:{"value":_vm.user}}),_c('Input',{staticClass:"mw-100",attrs:{"id":"addNote","type":"textarea","label":"Add note","required":""}}),_c('button',{staticClass:"btn btn-tertiary"},[_vm._v("Submit note")])],1)],1)}
3644
- var NoteFeedvue_type_template_id_d99a9532_staticRenderFns = []
3645
-
3646
-
3647
- ;// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??clonedRuleSet-83[0].rules[0].use[0]!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/NoteFeed/NoteFeed.vue?vue&type=script&lang=js&
3648
-
3649
-
3650
- function NoteFeedvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3651
-
3652
- function NoteFeedvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? NoteFeedvue_type_script_lang_js_ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : NoteFeedvue_type_script_lang_js_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3653
-
3654
- //
3655
- //
3656
- //
3657
- //
3658
- //
3659
- //
3660
- //
3661
- //
3662
- //
3663
- //
3664
- //
3665
- //
3666
- //
3667
-
3668
-
3669
- var tableProps = Table.props;
3670
- tableProps.fields.required = false;
3671
- /* harmony default export */ var NoteFeedvue_type_script_lang_js_ = ({
3672
- components: {
3673
- Table: Table,
3674
- Input: Input
3675
- },
3676
-
3677
- data() {
3678
- return {
3679
- itemsData: [...this.items] // Redefine data to avoid bleeding of data to other components
3680
-
3681
- };
3682
- },
3683
-
3684
- methods: {
3685
- submitForm: function submitForm(event) {
3686
- console.log(this);
3687
- var data = new FormData(event.target);
3688
- var today = new Date();
3689
- var yyyy = today.getFullYear();
3690
- var mm = today.getMonth() + 1; // Months start at 0!
3691
-
3692
- var dd = today.getDate();
3693
- if (dd < 10) dd = '0' + dd;
3694
- if (mm < 10) mm = '0' + mm;
3695
- today = dd + '/' + mm + '/' + yyyy;
3696
- this.itemsData.unshift({
3697
- date_added: today,
3698
- user: data.get('user'),
3699
- note: data.get('addNote')
3700
- });
3701
- this.$emit('formSubmitted', event);
3702
- }
3703
- },
3704
- name: 'NoteFeed',
3705
- props: NoteFeedvue_type_script_lang_js_objectSpread(NoteFeedvue_type_script_lang_js_objectSpread({
3706
- user: {
3707
- type: String,
3708
- required: true
3709
- }
3710
- }, tableProps), {}, {
3711
- title: {
3712
- type: String,
3713
- required: false
3714
- },
3715
- method: {
3716
- type: String,
3717
- required: false,
3718
- default: 'post'
3719
- },
3720
- action: {
3721
- type: String,
3722
- required: false
3723
- }
3724
- })
3725
- });
3726
- ;// CONCATENATED MODULE: ./src/components/NoteFeed/NoteFeed.vue?vue&type=script&lang=js&
3727
- /* harmony default export */ var NoteFeed_NoteFeedvue_type_script_lang_js_ = (NoteFeedvue_type_script_lang_js_);
3728
- ;// CONCATENATED MODULE: ./src/components/NoteFeed/NoteFeed.vue
3729
-
3730
-
3731
-
3732
-
3733
-
3734
- /* normalize component */
3735
- ;
3736
- var NoteFeed_component = normalizeComponent(
3737
- NoteFeed_NoteFeedvue_type_script_lang_js_,
3738
- NoteFeedvue_type_template_id_d99a9532_render,
3739
- NoteFeedvue_type_template_id_d99a9532_staticRenderFns,
3740
- false,
3741
- null,
3742
- null,
3743
- null
3744
-
3745
- )
3746
-
3747
- /* harmony default export */ var NoteFeed = (NoteFeed_component.exports);
3748
- ;// CONCATENATED MODULE: ./src/index.js
3749
- // Foundations
3750
-
3751
- // Elements
3752
-
3753
-
3754
-
3755
- // Components
3756
-
3757
-
3758
-
3759
-
3760
-
3761
-
3762
-
3763
-
3764
-
3765
-
3766
-
3767
-
3768
-
3769
-
3770
-
3771
-
3772
-
3773
-
3774
-
3775
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
3776
-
3777
-
3778
-
3779
- }();
3780
- /******/ return __webpack_exports__;
3781
- /******/ })()
3782
- ;
3783
- });
3784
- //# sourceMappingURL=components.umd.js.map
1
+ (function(p,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(p=typeof globalThis<"u"?globalThis:p||self,e(p.iamkey={},p.Vue))})(this,function(p,e){"use strict";const _=(t,r)=>{const a=t.__vccOpts||t;for(const[l,m]of r)a[l]=m;return a},U={name:"Icon",props:{id:{type:String,required:!1,default:"email"},path:{type:String,required:!1,default:"/svg/icons.svg"}}},v={class:"icon"},O=["xlink:href"];function G(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("svg",v,[e.createElementVNode("title",null,e.toDisplayString(a.id),1),e.createElementVNode("use",{"xlink:href":a.path+"#icon-"+a.id},null,8,O)])}const x=_(U,[["render",G],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/foundations/Icon/Icon.vue"]]),j={name:"Logo",props:{id:{type:String,required:!1,default:"property"},path:{type:String,required:!1,default:"/svg/logo.svg"},desc:{type:String}},computed:{src:function(){return"#logo-"+this.id},className:function(){return"brand brand--"+this.id}}},J=["xlink:href"],W=["innerHTML"];function K(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.className)},[(e.openBlock(),e.createElementBlock("svg",null,[e.createElementVNode("title",null,"iam "+e.toDisplayString(a.id),1),e.createElementVNode("use",{"xlink:href":a.path+n.src},null,8,J)])),a.desc?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:a.desc},null,8,W)):e.createCommentVNode("v-if",!0)],2)}const q=_(j,[["render",K],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/foundations/Logo/Logo.vue"]]),T=t=>t.charAt(0).toUpperCase()+t.slice(1),M=t=>t.replace(/_/g," "),R=t=>t.replace(/ /g,"_"),Z=function(t){return t=t.toLowerCase(),t=R(t),t=t.replace(/\W/g,""),t},Q=function(t){return typeof t!="string"?!1:!isNaN(t)&&!isNaN(parseFloat(t))},Y=(t,r)=>String(t).padStart(r,"0");function D(t){if(typeof t!="object")return!1;const r=t.querySelector("thead"),a=t.querySelector("tbody"),l=a.cloneNode(!0),m=new Event("sorted"),n=new Event("filtered"),s=new Event("reordered"),o="table_"+Math.random().toString(36).substr(2,9);let d;t.setAttribute("id",o);const b=function(f,c){let i=[];Array.from(a.querySelectorAll("tr")).forEach((h,k)=>{let y=h.querySelector('td[data-label="'+f+'"], th[data-label="'+f+'"]').textContent;Q(y)&&(y=Y(y,10));const C={index:y,row:h};i.push(C)}),i.sort((h,k)=>h.index>k.index?1:-1),c=="descending"&&(i=i.reverse());let u="";i.forEach((h,k)=>{u+=h.row.outerHTML}),a.innerHTML=u,t.dispatchEvent(m)};if(t.addEventListener("click",function(f){for(var c=f.target;c&&c!=this;c=c.parentNode)if(c.matches("[data-sortable]")){let i=c.getAttribute("aria-sort")=="ascending"?"descending":"ascending";Array.from(t.querySelectorAll("[data-sortable]")).forEach((u,h)=>{u.setAttribute("aria-sort","none")}),c.setAttribute("aria-sort",i),t.setAttribute("data-sort",i),t.setAttribute("data-sortBy",c.textContent),b(c.textContent,i),Array.from(t.querySelectorAll("tr[draggable]")).forEach((u,h)=>{u.removeAttribute("draggable")});break}},!1),t.getAttribute("data-sortBy")){let f=t.getAttribute("data-sort")=="ascending"?"descending":"ascending";Array.from(t.querySelectorAll("[data-sortable]")).forEach((c,i)=>{c.textContent==t.getAttribute("data-sortBy")&&(c.setAttribute("aria-sort",f),c.click())})}const g=function(f){const c=document.createElement("div");c.classList.add("table__filters"),c.classList.add("row"),c.classList.add("pt-1"),c.classList.add("pb-3");const i=Array.from(t.querySelectorAll("th[data-filterable]"));let u={};i.forEach((y,C)=>{Array.from(t.querySelectorAll('td[data-label="'+y.textContent+'"]')).forEach((F,zo)=>{u[F.textContent]=F.textContent})});const h=i.length==1?"Filter by "+i[0].textContent:"Filter",k=i.length==1?"d-none":"d-sm-flex";c.innerHTML=`<div class="col-sm-6 col-md-4 pb-3">
2
+ <div class="form-control__wrapper form-control-inline mb-0">
3
+ <label for="${o}_filter" class="form-label">${h}:</label>
4
+ <input type="search" name="${o}_filter" id="${o}_filter" class="form-control form-control-sm" placeholder="" list="${o}_list" />
5
+ </div>
6
+ <datalist id="${o}_list">
7
+ ${Object.keys(u).map(y=>`<option value="${y}"></option>`).join("")}
8
+ </datalist>
9
+ </div>
10
+ <div class="col-md-8 align-items-center pb-3 ${k}">
11
+ ${'<span class="pe-3 text-nowrap h5 mb-0">Filter by: </span>'+i.map(y=>`<div class="form-check pe-3 mt-0 mb-0"><input class="form-check-input" type="checkbox" id="${o}_${y.textContent.replace(" ","_").toLowerCase()}" checked="checked" /><label class="form-check-label text-nowrap" for="${o}_${y.textContent.replace(" ","_").toLowerCase()}">${y.textContent}</label></div>`).join("")}
12
+ </div>`,t.prepend(c)},N=function(f){let c=[];Array.from(l.querySelectorAll("tr")).forEach((u,h)=>{let k="";if(Array.from(t.querySelectorAll('[type="checkbox"]:checked + label')).forEach((y,C)=>{k+=u.querySelector('td[data-label="'+y.textContent+'"]').textContent+" | "}),k.indexOf(f)>=0){const y={row:u};c.push(y)}});let i="";c.forEach((u,h)=>{i+=u.row.outerHTML}),a.innerHTML=i,t.dispatchEvent(n)},A=function(){let f=[];Array.from(t.querySelectorAll('[type="checkbox"]:checked + label')).forEach((u,h)=>{f.push(u.textContent)});let c=[];f.forEach((u,h)=>{Array.from(t.querySelectorAll('td[data-label="'+u+'"]')).forEach((k,y)=>{c[k.textContent]=k.textContent})});let i=t.querySelector("datalist");i.innerHTML=Object.keys(c).map(u=>`<option value="${u}"></option>`).join("")};Array.from(t.querySelectorAll("[data-filterable]")).length&&(g(t,Array.from(t.querySelectorAll("[data-filterable]")).length),t.addEventListener("keyup",function(f){for(var c=f.target;c&&c!=this;c=c.parentNode)if(c.matches('input[type="search"]')){const i=c.value;N(i)}}),t.addEventListener("change",function(f){for(var c=f.target;c&&c!=this;c=c.parentNode)if(c.matches('input[type="search"]')){const i=c.value;N(i)}}),t.addEventListener("change",function(f){for(var c=f.target;c&&c!=this;c=c.parentNode)if(c.matches('input[type="checkbox"]')){const i=t.querySelector('input[type="search"]').value;N(i),A()}}));const w=function(f,c){let i=document.getElementById(o+"_style");i==null&&(i=document.createElement("style"),i.setAttribute("id",o+"_style"));const u=f*(c-1)+1,h=f*c;i.innerHTML=`
13
+ #${o} tbody tr {
14
+ display: none;
15
+ }
16
+ #${o} tbody tr:nth-child(${u}),
17
+ #${o} tbody tr:nth-child(${u}) ~ tr{
18
+ display: block;
19
+ }
20
+ @media screen and (min-width: 36em) {
21
+ #${o} tbody tr:nth-child(${u}),
22
+ #${o} tbody tr:nth-child(${u}) ~ tr{
23
+ display: table-row;
24
+ }
25
+ }
26
+ #${o} tbody tr:nth-child(${h}) ~ tr{
27
+ display: none;
28
+ }
29
+ `,t.append(i)};if(t.getAttribute("data-show")){const f=parseInt(t.getAttribute("data-show")),c=parseInt(t.getAttribute("data-page"))?parseInt(t.getAttribute("data-page")):1,i=t.querySelectorAll("tbody tr").length;f<i&&(w(f,c),H(o,t,f,c,i),S(o,t,f,c,i),t.addEventListener("change",function(u){for(var h=u.target;h&&h!=this;h=h.parentNode)h.matches('.table__pagination input[type="number"]')&&(w(h.value,c),S(o,t,h.value,c,i),t.setAttribute("data-show",h.value))}),t.addEventListener("click",function(u){for(var h=u.target;h&&h!=this;h=h.parentNode)h.matches(".page-item:not(.active):not(.disabled) .page-link")&&(w(t.getAttribute("data-show"),h.getAttribute("data-page")),S(o,t,t.getAttribute("data-show"),h.getAttribute("data-page"),i))},!1),t.addEventListener("change",function(u){for(var h=u.target;h&&h!=this;h=h.parentNode)h.matches(".table__pagination select")&&(w(t.getAttribute("data-show"),h.value),S(o,t,t.getAttribute("data-show"),h.value,i))}))}function bo(f){f.dataTransfer.setData("text/plain",f.target.id),d=f.target,f.target.classList.add("tr--dragging")}const L=function(){Array.from(a.querySelectorAll("tr")).forEach((f,c)=>{if(f.querySelector('[data-label="Order"]')==null){const i=document.createElement("th");i.innerHTML=c+1,i.setAttribute("data-label","Order"),f.prepend(i)}f.setAttribute("id",o+"_row_"+(c+1)),f.setAttribute("data-order",c+1),f.setAttribute("draggable","true"),f.addEventListener("dragstart",bo)})};if(t.getAttribute("data-reorder")&&t.getAttribute("data-reorder")!="false"){const f=document.createElement("th");f.innerHTML="Order",f.title="Click here to enable re-ordering via drag and drop",f.classList.add("table-order-reset"),r.querySelector("tr").prepend(f),L(),t.addEventListener("click",function(c){for(var i=c.target;i&&i!=this;i=i.parentNode)if(i.matches(".table-order-reset")){Array.from(t.querySelectorAll("[data-sortable]")).forEach((u,h)=>{u.setAttribute("aria-sort","none")}),t.removeAttribute("data-sort"),t.removeAttribute("data-sortBy"),b("Order","ascending"),Array.from(t.querySelectorAll("tbody tr")).forEach((u,h)=>{u.setAttribute("draggable","true")});break}},!1),document.addEventListener("dragover",function(c){c.preventDefault()},!1),document.addEventListener("dragenter",function(c){c.preventDefault(),c.dataTransfer.dropEffect="move";for(var i=c.target;i&&i!=this;i=i.parentNode)i.matches("[data-reorder] tbody tr")&&i.classList.add("tr--dropable")},!1),document.addEventListener("dragleave",function(c){c.preventDefault();for(var i=c.target;i&&i!=this;i=i.parentNode)i.matches("[data-reorder] tbody tr")&&i.classList.remove("tr--dropable")},!1),document.addEventListener("drop",function(c){c.preventDefault();for(var i=c.target;i&&i!=this;i=i.parentNode)if(i.matches("[data-reorder] tbody tr")){i.parentNode!=null&&d.parentNode!=null&&i!=d&&(d.parentNode.removeChild(d),d.getAttribute("data-order")>i.getAttribute("data-order")?i.parentNode.insertBefore(d,i):i.parentNode.insertBefore(d,i.nextElementSibling),Array.from(a.querySelectorAll("tr")).forEach((u,h)=>{u.classList.remove("tr--dragging"),u.classList.remove("tr--dropable"),u.querySelector("th").innerHTML=h+1,u.setAttribute("data-order",h+1)}),t.dispatchEvent(s));break}},!1)}t.addEventListener("filtered",function(f){if(t.getAttribute("data-sortBy")&&t.getAttribute("data-sort")&&b(t.getAttribute("data-sortBy"),t.getAttribute("data-sort")),t.getAttribute("data-show")){const c=parseInt(t.getAttribute("data-show")),i=t.querySelectorAll("tbody tr").length,u=t.querySelector(".table__pagination");u!=null&&u.remove(),c<i&&(w(c,1),H(o,t,c,1,i),S(o,t,c,1,i))}t.getAttribute("data-reorder")&&L()},!1),t.addEventListener("sorted",function(f){t.getAttribute("data-reorder")&&L()},!1),t.addEventListener("populated",function(f){var c=t.querySelector(".table__filters");c.remove();var i=t.querySelector(".table__pagination");i.remove();var u=t.cloneNode(!0);t.parentNode.replaceChild(u,t),D(u)},!1)}const H=function(t,r,a,l,m){const n=document.createElement("div");n.classList.add("table__pagination"),n.classList.add("row"),n.classList.add("pt-3"),n.classList.add("pb-3"),n.innerHTML=`<div class="col mw-fit-content mb-3">
30
+ <div class="form-control__wrapper form-control-inline mb-0">
31
+ <label for="${t}_showing" class="form-label">Showing:</label>
32
+ <input type="number" name="${t}_showing" id="${t}_showing" class="form-control form-control-sm showing-input-field" placeholder="" list="${t}_pagination" value="${a}" min="1" max="${m}" />
33
+ </div>
34
+ <datalist id="${t}_pagination">
35
+ <option value="5">5</option>
36
+ ${m>10?'<option value="10">10</option>':""}
37
+ ${m>20?'<option value="20">20</option>':""}
38
+ <option value="${m}">${m}</option>
39
+ </datalist>
40
+ </div>
41
+ <div class="col mw-fit-content me-auto d-flex align-items-center mb-3"><span class="label">per page</span></div>
42
+ <div class="col mw-fit-content d-sm-flex justify-content-end align-items-center" id="${t}_paginationBtns"></div>`,r.append(n)},S=function(t,r,a,l,m){const n=document.getElementById(t+"_paginationBtns");if(n==null)return!1;const s=Math.ceil(m/a);if(s==1)n.innerHTML="";else if(s<5){let o="";for(let d=1;d<=s;d++)d==l?o+=`<li class="page-item active" aria-current="page"><span class="page-link">${d}</span></li>`:o+=`<li class="page-item"><button class="page-link" data-page="${d}">${d}</button></li>`;n.innerHTML=`<span class="pe-2 mb-3">Page: </span><ul class="pagination mb-3">
43
+ ${l==1?'<li class="page-item disabled"><span class="page-link">Previous</span></li>':`<li class="page-item"><button class="page-link" data-page="${parseInt(l)-1}">Previous</button></li>`}
44
+ ${o}
45
+ ${l==s?'<li class="page-item disabled"><span class="page-link">Next</span></li>':`<li class="page-item"><button class="page-link" data-page="${parseInt(l)+1}">Next</button></li>`}
46
+ </ul>`}else{let o="";for(let d=1;d<=s;d++)d==l?o+=`<option value="${d}" selected>Page ${d}</option>`:o+=`<option value="${d}">Page ${d}</option>`;n.innerHTML=`
47
+ <div class="form-control__wrapper page-number mb-2">
48
+ <select class="form-select">
49
+ ${o}
50
+ </select>
51
+ </div>
52
+ `}};let z=function(t){return typeof t!="string"?t:(t=t.replace("\xA3",""),t=t.replace("%",""),Number.isNaN(Number.parseFloat(t))?0:Number.parseFloat(t))};const X={name:"Table",props:{reorder:{type:Boolean,required:!1},page:{type:Number,required:!1},show:{type:Number,required:!1},sortby:{type:String,required:!1},sort:{type:String,required:!1},headingclass:{type:String,required:!1},items:{type:Array,required:!0},fields:{type:Array,required:!0}},computed:{cellHeading(){return t=>`${T(M(t))}`},numericValue(){return t=>(t=z(t),t)}},mounted(){this.$nextTick(function(){D(this.$refs.wrapper),this.$el.addEventListener("sorted",function(t){console.log("Table sorted")},!1),this.$el.addEventListener("filtered",function(t){console.log("Table filtered")},!1)})},updated(){this.$nextTick(function(){let t=this.$refs.wrapper.querySelector("tbody"),r="";this.items.forEach((l,m)=>{let n=l.rowid?l.rowid:"";l=Object.fromEntries(Object.entries(l).filter(([s])=>s!=="rowid")),r+=`<tr data-row-id="${n}">${Object.keys(l).map(s=>`<td data-label="${T(M(s))}" data-numeric="${z(l[s])}">${l[s]}</td>`).join("")}</tr>`}),t.innerHTML=r;const a=new Event("filtered");this.$refs.wrapper.dispatchEvent(a)})}},ee=["data-sortby","data-sort","data-show","data-page","data-reorder"],te={key:0},ae=["data-sortable","data-filterable"],ne={key:1},oe=["data-row-id"],re=["innerHTML","data-label","data-numeric"];function se(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",{class:"table__wrapper",ref:"wrapper","data-sortby":a.sortby,"data-sort":a.sort,"data-show":a.show,"data-page":a.page,"data-reorder":a.reorder},[e.createElementVNode("table",null,[a.fields?(e.openBlock(),e.createElementBlock("thead",te,[e.createElementVNode("tr",{class:e.normalizeClass(a.headingclass)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields,s=>(e.openBlock(),e.createElementBlock("th",{key:s.key,"data-sortable":s.sortable,"data-filterable":s.filterable},e.toDisplayString(n.cellHeading(s.key)),9,ae))),128))],2)])):e.createCommentVNode("v-if",!0),a.items?(e.openBlock(),e.createElementBlock("tbody",ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,(s,o)=>(e.openBlock(),e.createElementBlock("tr",{key:o,"data-row-id":s.rowid},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.fromEntries(Object.entries(s).filter(([d])=>d!=="rowid")),(d,b)=>(e.openBlock(),e.createElementBlock("td",{key:b,innerHTML:d,"data-label":n.cellHeading(b),"data-numeric":n.numericValue(d)},null,8,re))),128))],8,oe))),128))])):e.createCommentVNode("v-if",!0)]),e.renderSlot(t.$slots,"default")],8,ee)}const E=_(X,[["render",se],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/elements/Table/Table.vue"]]),le={name:"Input",props:{value:{type:String,required:!1},id:{type:String,required:!0},name:{type:String,required:!1},list:{type:String,required:!1},label:{type:String,required:!1},labelclass:{type:String,required:!1},inputclass:{type:String,required:!1},type:{type:String,required:!1,default:"text"},size:{type:String,required:!1},errormsg:{type:String,required:!1},options:{type:Array,required:!1},prefix:{type:String,required:!1},prefixClass:{type:String,required:!1},suffix:{type:String,required:!1},suffixClass:{type:String,required:!1},title:{type:String,required:!1},hint:{type:String,required:!1}},computed:{displayLabel(){return()=>this.$attrs.multiple?this.label+'<span class="small d-block text-body font-body fw-normal">Hold down the Ctrl (windows) or Command (Mac) button to select multiple options.</span>':this.hint?this.label+`<span class="small d-block text-body font-body fw-normal">${this.hint}</span>`:this.label},wrapperClass(){return()=>{switch(this.type){case"radio":case"checkbox":return"form-check";case"radio-btn":case"checkbox-btn":return!1;default:return"form-control__wrapper"}}},needPattern(){return()=>{if(this.pattern)return this.pattern;switch(this.type){case"datetime-local":return"[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}"}return!1}},needsLabel(){return()=>{switch(this.type){case"radio":case"radio-btn":case"checkbox":case"checkbox-btn":return!1;default:return!0}}},isInput(){return()=>{switch(this.type){case"textarea":case"select":case"radio":case"radio-btn":case"checkbox":case"checkbox-btn":case"range":case"color":return!1;default:return!0}}},allowDatalist(){return()=>{switch(this.type){case"select":case"radio":case"radio-btn":case"checkbox":case"checkbox-btn":return!1;default:return!0}}},hasOptions(){return()=>{if(this.list)return this.list;if(this.options)return this.id+"-list"}},inputVal:{get(){return this.value==null&&this.options!=null&&this.type=="select"?this.$attrs.multiple?[]:this.options[0].value:this.value},set(t){this.$emit("input",t)}}},mounted(){this.$nextTick(function(){let t=this.$refs.wrapper;if(t.parentNode&&t.parentNode.classList.contains("form-check")||t.classList.length==0){const r=document.createDocumentFragment();Array.from(t.childNodes).forEach(a=>r.appendChild(a)),t.parentNode.insertBefore(r,t),t.parentNode.removeChild(t)}})},methods:{inputKeyup(t){this.$emit("keyupEvent",t)},clickEvent(){this.$emit("bus")}}},ie=["for","innerHTML","title"],ce=["innerHTML"],de=["innerHTML"],me=["type","name","id","pattern","list"],fe=["type","name","id","pattern"],ue={key:5,class:"input-group"},he=["type","name","id","pattern","list"],pe={class:"input-group-text border-0 col-2 col-sm-1 px-0"},_e={key:6,class:"input-group"},ye=["type","name","id","pattern","list"],be={class:"input-group-text flex-fill"},ge=["type","name","id","pattern"],ke=["value"],Ne=["id"],we=["value"],Se=["type","name","id"],Be=["for","innerHTML"],Ve=["type","name","id"],Ee=["for","innerHTML"],$e=["innerHTML"];function Ae(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.wrapperClass()),ref:"wrapper"},[n.needsLabel()?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(`form-label${a.labelclass?` ${a.labelclass}`:""}`),for:a.id,innerHTML:n.displayLabel(),title:a.title},null,10,ie)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Prefix and Suffix "),a.prefix?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(`prefix ${this.prefixClass} ${a.size?`prefix-${a.size}`:""}`),innerHTML:a.prefix,role:"presentation"},null,10,ce)):e.createCommentVNode("v-if",!0),a.suffix?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(`suffix ${this.suffixClass} ${a.size?`suffix-${a.size}`:""}`),innerHTML:a.suffix,role:"presentation"},null,10,de)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Standard input field "),n.isInput()?e.withDirectives((e.openBlock(),e.createElementBlock("input",e.mergeProps({key:3,"onUpdate:modelValue":r[0]||(r[0]=s=>n.inputVal=s),class:`form-control${a.size?` form-control-${a.size}`:""}${a.inputclass?` ${a.inputclass}`:""}`,type:a.type,name:a.name?a.name:a.id,id:a.id,pattern:n.needPattern(),list:n.hasOptions()},t.$attrs,{onKeyup:r[1]||(r[1]=(...s)=>n.inputKeyup&&n.inputKeyup(...s))}),null,16,me)),[[e.vModelDynamic,n.inputVal]]):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Textarea "),a.type=="textarea"?e.withDirectives((e.openBlock(),e.createElementBlock("textarea",e.mergeProps({key:4,"onUpdate:modelValue":r[2]||(r[2]=s=>n.inputVal=s),class:`form-control${a.size?` form-control-${a.size}`:""}${a.inputclass?` ${a.inputclass}`:""}`,type:a.type,name:a.name?a.name:a.id,id:a.id,pattern:n.needPattern()},t.$attrs),null,16,fe)),[[e.vModelText,n.inputVal]]):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Range "),a.type=="range"?(e.openBlock(),e.createElementBlock("div",ue,[e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":r[3]||(r[3]=s=>n.inputVal=s),class:`form-range${a.inputclass?` ${a.inputclass}`:""}`,type:a.type,name:a.name?a.name:a.id,id:a.id,pattern:n.needPattern(),list:n.hasOptions()},t.$attrs,{oninput:"this.nextElementSibling.value=this.value;"}),null,16,he),[[e.vModelDynamic,n.inputVal]]),e.createElementVNode("output",pe,e.toDisplayString(a.value),1)])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Color picker "),a.type=="color"?(e.openBlock(),e.createElementBlock("div",_e,[e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":r[4]||(r[4]=s=>n.inputVal=s),class:`form-control form-control-color${a.inputclass?` ${a.inputclass}`:""}`,type:a.type,name:a.name?a.name:a.id,id:a.id,pattern:n.needPattern(),list:n.hasOptions()},t.$attrs,{oninput:"this.nextElementSibling.value=this.value;"}),null,16,ye),[[e.vModelDynamic,n.inputVal]]),e.createElementVNode("output",be,e.toDisplayString(a.value?t.vale:"#000000"),1)])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Select/dropdown "),a.type=="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps({key:7,"onUpdate:modelValue":r[5]||(r[5]=s=>n.inputVal=s),class:`form-select${a.size?` form-select-${a.size}`:""}${a.inputclass?` ${a.inputclass}`:""}`,type:a.type,name:a.id,id:a.id,pattern:n.needPattern()},t.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.options,(s,o)=>(e.openBlock(),e.createElementBlock("option",{key:o,value:s.value},e.toDisplayString(s.display?s.display:s.value),9,ke))),128))],16,ge)),[[e.vModelSelect,n.inputVal]]):e.createCommentVNode("v-if",!0),n.allowDatalist()?(e.openBlock(),e.createElementBlock("datalist",{key:8,id:a.id+"-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.options,(s,o)=>(e.openBlock(),e.createElementBlock("option",{key:o,value:s.value},e.toDisplayString(s.value),9,we))),128))],8,Ne)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Checkbox "),a.type=="checkbox"||a.type=="radio"?(e.openBlock(),e.createElementBlock("input",e.mergeProps({key:9,class:"form-check-input",type:a.type,name:a.name?a.name:a.id,id:a.id},t.$attrs),null,16,Se)):e.createCommentVNode("v-if",!0),a.type=="checkbox"||a.type=="radio"?(e.openBlock(),e.createElementBlock("label",{key:10,class:e.normalizeClass(`form-label form-check-label${a.labelclass?` ${a.labelclass}`:""}`),for:a.id,innerHTML:a.label},null,10,Be)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Checkbox Button "),a.type=="checkbox-btn"||a.type=="radio-btn"?(e.openBlock(),e.createElementBlock("input",e.mergeProps({key:11,class:`btn-check${a.inputclass?` ${a.inputclass}`:""}`,type:a.type.replace("-btn",""),autocomplete:"off",name:a.name?a.name:a.id,id:a.id},t.$attrs),null,16,Ve)):e.createCommentVNode("v-if",!0),a.type=="checkbox-btn"||a.type=="radio-btn"?(e.openBlock(),e.createElementBlock("label",{key:12,class:e.normalizeClass(`btn${a.labelclass?` ${a.labelclass}`:""}`),for:a.id,innerHTML:a.label,onClick:r[6]||(r[6]=(...s)=>n.clickEvent&&n.clickEvent(...s))},null,10,Ee)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" Error message "),a.errormsg?(e.openBlock(),e.createElementBlock("p",{key:13,class:"invalid-feedback mb-0",innerHTML:a.errormsg},null,8,$e)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default")],2)}const B=_(le,[["render",Ae],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/elements/Input/Input.vue"]]),Le={components:{Input:B},name:"FileUploads",props:{id:{type:String,required:!0},inputcolclass:{type:String,required:!1},maxfilesize:{type:Number,required:!1},maxfiles:{type:Number,required:!1}}},Ce={class:"multiple-file-uploads mb-4"},xe={class:"row"},qe={class:"col-12 col-md me-auto"},Te=e.createElementVNode("div",{class:"col mw-fit-content"},[e.createElementVNode("button",{type:"button",class:"btn btn-tertiary me-0","data-delete":""},"Delete")],-1),Me=["data-maxfiles"];function De(t,r,a,l,m,n){const s=e.resolveComponent("Input");return e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("div",xe,[e.createElementVNode("div",{class:e.normalizeClass(`${a.inputcolclass?a.inputcolclass:"col-12 col-sm-4"}`)},[e.createVNode(s,{type:"file",id:a.id,name:`${a.id}[]`,label:"Add new file",labelclass:"d-none",class:"form-control-inline col",required:"","data-filesize":a.maxfilesize},null,8,["id","name","data-filesize"])],2),e.createElementVNode("div",qe,[e.renderSlot(t.$slots,"default")]),Te]),e.createElementVNode("button",{type:"button",class:"btn btn-secondary me-0","data-add":"","data-maxfiles":a.maxfiles},"+ Add file",8,Me)])}const He=_(Le,[["render",De],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/elements/FileUploads/FileUploads.vue"]]);function ze(t){if(!t.classList.contains("accordion--keep-open")){const r=t.querySelectorAll(":scope > details");r.forEach(a=>{a.addEventListener("click",()=>{r.forEach(l=>{l!==a&&l.removeAttribute("open")})})})}if(window.location.hash&&document.querySelector(window.location.hash+":not([open]) summary")){const r=document.querySelector(window.location.hash+" summary");r instanceof HTMLElement&&r.click()}window.addEventListener("hashchange",function(){if(window.location.hash&&document.querySelector(window.location.hash+" summary")){const r=document.querySelector(window.location.hash+" summary");r instanceof HTMLElement&&r.click()}})}const go="",Pe={name:"Accordion",props:{},mounted(){ze(this.$refs.wrapper)}},Ie={class:"container accordion",ref:"wrapper"};function Fe(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",Ie,[e.renderSlot(t.$slots,"default")],512)}const Ue=_(Pe,[["render",Fe],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Accordion/Accordion.vue"]]),ve={name:"AccordionItem",props:{title:{type:String,required:!0},titlecolour:{type:String,required:!1},badge:{type:[Number,String],required:!1},badgecolour:{type:String,required:!1,default:"light"},lazy:{type:Boolean,required:!1}},computed:{createID(){return t=>`${Z(t)}`}},data(){return{show:!this.lazy}}},Oe=["id"],Ge={class:"accordion-header accordion-button h4"},je={key:0,class:"accordion-body"};function Je(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("details",{class:"accordion-item",id:n.createID(a.title)},[e.createElementVNode("summary",{class:e.normalizeClass(`${a.titlecolour?`bg-${a.titlecolour}`:""}`),onClick:r[0]||(r[0]=s=>m.show=!0)},[e.createElementVNode("span",Ge,[e.createTextVNode(e.toDisplayString(a.title),1),a.badge?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(`badge bg-${a.badgecolour}`)},e.toDisplayString(a.badge),3)):e.createCommentVNode("v-if",!0)])],2),m.show?(e.openBlock(),e.createElementBlock("div",je,[e.renderSlot(t.$slots,"default")])):e.createCommentVNode("v-if",!0)],8,Oe)}const We=_(ve,[["render",Je],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Accordion/AccordionItem.vue"]]),Ke={name:"Header",props:{title:{type:String,required:!0},image:{type:String,required:!1},background:{type:String,default:"light",required:!1}}},Re={class:"container"},Ze={class:"row"},Qe={class:"col-sm-6"},Ye={class:"pt-5 pb-3 px-4"},Xe={class:"col-sm-6 col-md-5 ms-auto"},et=["src"];function tt(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",{class:e.normalizeClass("bg-"+a.background+" mb-4")},[e.createElementVNode("div",Ze,[e.createElementVNode("div",Qe,[e.createElementVNode("div",Ye,[e.createElementVNode("h2",null,e.toDisplayString(a.title),1),e.renderSlot(t.$slots,"default")])]),e.createElementVNode("div",Xe,[a.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:a.image,alt:"",class:"h-100 w-100 object-cover"},null,8,et)):e.createCommentVNode("v-if",!0)])])],2)])}const at=_(Ke,[["render",tt],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Banner/Banner.vue"]]),ko="",nt={name:"Card",props:{link:{type:String,required:!1},titleclass:{type:String,required:!1,default:"h4"},title:{type:String,required:!1},subtitle:{type:String,required:!1},content:{type:String,required:!1},type:{type:String,required:!1},btntype:{type:String,required:!1,default:"secondary"},ctatext:{type:String,required:!1,default:"Find out more"},hidectatext:{type:Boolean,required:!1,default:!1},image:{type:String,required:!1},details:{type:Object,required:!1}},computed:{cardStatus(){return()=>this.details&&this.details.status?`${this.details.status=="Live now"?'<span class="text-danger lh-0 fs-1 align-middle">&#8226;</span>&nbsp;&nbsp;':""}${this.details.status}`:""},cardMedia(){return()=>`<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 30 28' class="icon text-white"><title>Images </title><path d='M15 10.5c2.484 0 4.5 2.016 4.5 4.5s-2.016 4.5-4.5 4.5-4.5-2.016-4.5-4.5 2.016-4.5 4.5-4.5zM26 4c2.203 0 4 1.797 4 4v14c0 2.203-1.797 4-4 4h-22c-2.203 0-4-1.797-4-4v-14c0-2.203 1.797-4 4-4h3.5l0.797-2.125c0.391-1.031 1.609-1.875 2.703-1.875h8c1.094 0 2.312 0.844 2.703 1.875l0.797 2.125h3.5zM15 22c3.859 0 7-3.141 7-7s-3.141-7-7-7-7 3.141-7 7 3.141 7 7 7z'></path></svg> ${this.details&&this.details.images?`${this.details.images}`:"0"}&nbsp;&nbsp;|&nbsp;&nbsp;<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 28 28' class="icon text-white ms-0"><title>Videos </title><path d="M11.109 17.625l7.562-3.906-7.562-3.953v7.859zM14 4.156c5.891 0 9.797 0.281 9.797 0.281 0.547 0.063 1.75 0.063 2.812 1.188 0 0 0.859 0.844 1.109 2.781 0.297 2.266 0.281 4.531 0.281 4.531v2.125s0.016 2.266-0.281 4.531c-0.25 1.922-1.109 2.781-1.109 2.781-1.062 1.109-2.266 1.109-2.812 1.172 0 0-3.906 0.297-9.797 0.297v0c-7.281-0.063-9.516-0.281-9.516-0.281-0.625-0.109-2.031-0.078-3.094-1.188 0 0-0.859-0.859-1.109-2.781-0.297-2.266-0.281-4.531-0.281-4.531v-2.125s-0.016-2.266 0.281-4.531c0.25-1.937 1.109-2.781 1.109-2.781 1.062-1.125 2.266-1.125 2.812-1.188 0 0 3.906-0.281 9.797-0.281v0z"></path></svg> ${this.details&&this.details.videos?`${this.details.videos}`:"0"}`},cardContent(){return()=>{const t=function(m){switch(m){case"Modern method":return"bg-secondary text-primary";case"Freehold":return"bg-light text-dark";default:return"bg-body text-white"}},r=this.details&&this.details.tags?this.details.tags.map(m=>`<span class="badge rounded-pill py-2 px-3 mb-3 me-2 ${t(m)}">${m}</span>`).join(""):"",a=this.title?`<span class="card-title d-block ${this.titleclass}">${this.title}${this.subtitle?` <span class="d-block fw-normal font-body text-body small">${this.subtitle}</span>`:""}</span>`:"",l=`
53
+ ${this.details&&this.details.guideprice?`<span class="d-block h6 text-dark mb-1">Price guide: ${this.details.guideprice}</span>`:""}
54
+ ${this.details&&this.details.auctiontime?`<span class="d-block h6 text-primary mb-4">Auction time left: ${this.details.auctiontime}</span>`:""}
55
+ ${this.details&&this.details.readtime?`<span class="d-block h6 text-primary mb-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="22" height="23" viewBox="0 0 22 23" class="icon ms-0 me-2"><path d="M11 1.63c-5.176 0-9.37 4.194-9.37 9.37 0 5.176 4.194 9.37 9.37 9.37 5.176 0 9.37-4.194 9.37-9.37 0-5.176-4.194-9.37-9.37-9.37M11 0c6.075 0 11 4.925 11 11s-4.925 11-11 11S0 17.075 0 11 4.925 0 11 0" fill="var(--colour-secondary)" /><path d="M9.62 5.39c0-.473.368-.856.82-.856.454 0 .822.383.822.855v6.27l3.25 1.898c.395.23.536.75.314 1.16-.22.412-.72.558-1.115.328l-4.09-2.39V5.39z" fill="var(--colour-primary)"/></svg>${this.details.readtime}</span>`:""}
56
+ `;return`${r}${a}${l}${this.content}`}}}},ot=["href","title"],rt={key:0,class:"card-header__wrapper"},st=["src"],lt={class:"card-header"},it=["innerHTML"],ct=["innerHTML"],dt=["src"],mt=["innerHTML"],ft={key:1,class:"card-footer"},ut={class:"visually-hidden"};function ht(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("a",{href:a.link,class:e.normalizeClass("card"+(a.type?" card--"+a.type:"")),title:"Find out more: "+a.title+(a.subtitle?" - "+a.subtitle:"")},[a.image?(e.openBlock(),e.createElementBlock("div",rt,[e.createElementVNode("img",{src:a.image,alt:"",loading:"lazy",class:"card-image"},null,8,st),e.createElementVNode("div",lt,[this.details&&this.details.status?(e.openBlock(),e.createElementBlock("span",{key:0,class:"badge bg-primary p-2 me-2",innerHTML:n.cardStatus()},null,8,it)):e.createCommentVNode("v-if",!0),this.details&&(this.details.images||this.details.videos)?(e.openBlock(),e.createElementBlock("span",{key:1,class:"badge bg-black bg-opacity-50 p-2 align-self-end",innerHTML:n.cardMedia()},null,8,ct)):e.createCommentVNode("v-if",!0)]),a.details&&a.details.logo?(e.openBlock(),e.createElementBlock("img",{key:0,src:a.details.logo,alt:"",loading:"lazy",class:"card-logo"},null,8,dt)):e.createCommentVNode("v-if",!0)])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:"card-body",innerHTML:n.cardContent()},null,8,mt),a.hidectatext==!1?(e.openBlock(),e.createElementBlock("div",ft,[e.createElementVNode("span",{class:e.normalizeClass(`${a.btntype=="link"?"link":`btn btn-${a.btntype}`} mb-0`)},[e.createTextVNode(e.toDisplayString(a.ctatext),1),e.createElementVNode("span",ut," about "+e.toDisplayString(a.title),1)],2)])):e.createCommentVNode("v-if",!0)],10,ot)}const $=_(nt,[["render",ht],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/elements/Card/Card.vue"]]),No="",pt={components:{Card:$},name:"CardDeck",props:{items:{type:Array,required:!1},cols:{type:Number,required:!1,default:1},smcols:{type:Number,required:!1,default:1},mdcols:{type:Number,required:!1,default:3},gap:{type:Number,required:!1,default:4},cardtype:{type:String,required:!1},cardclass:{type:String,required:!1},btntype:{type:String,required:!1},titleclass:{type:String,required:!1},ctatext:{type:String,required:!1},hidectatext:{type:Boolean,required:!1,default:!1}}},_t=["data-card-type"];function yt(t,r,a,l,m,n){const s=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock("div",{class:"container card-deck prevent-invert","data-card-type":a.cardtype},[e.renderSlot(t.$slots,"default"),e.createElementVNode("div",{class:e.normalizeClass(`row row-cols-${a.cols} row-cols-sm-${a.smcols} row-cols-md-${a.mdcols} ${a.gap?`g-${a.gap}`:""}`)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:"col",key:d},[e.createVNode(s,e.mergeProps(o,{class:a.cardclass,type:a.cardtype,btntype:a.btntype,titleclass:a.titleclass,ctatext:a.ctatext,hidectatext:a.hidectatext}),null,16,["class","type","btntype","titleclass","ctatext","hidectatext"])]))),128))],2),e.renderSlot(t.$slots,"after")],8,_t)}const P=_(pt,[["render",yt],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/CardDeck/CardDeck.vue"]]);function bt(t){var r;let a=t.querySelector(".carousel__inner"),l=t.querySelectorAll(".carousel__item").length;t.getAttribute("data-cols");let m=t.getAttribute("data-sm-cols"),n=t.getAttribute("data-md-cols");t.querySelector(".carousel__controls a").classList.add("active"),a.addEventListener("scroll",function(s){clearTimeout(r),r=setTimeout(function(){let o=a.clientWidth,d=a.scrollWidth,b=a.scrollLeft,g=Math.round(b/d*l)+1,N=t.querySelector(".carousel__item:last-child").offsetLeft;Array.from(t.querySelectorAll(".carousel__controls a")).forEach((A,w)=>{A.classList.remove("active")}),t.querySelector(".control-"+g).classList.add("active"),g==1?t.querySelector(".btn-prev").setAttribute("disabled","disabled"):t.querySelector(".btn-prev").removeAttribute("disabled"),a.scrollLeft+o>N?t.querySelector(".btn-next").setAttribute("disabled","disabled"):t.querySelector(".btn-next").removeAttribute("disabled")},100)},!1),t.addEventListener("click",function(s){for(var o=s.target;o&&o!=this;o=o.parentNode)if(o.matches(".carousel__controls a")){s.preventDefault(),Array.from(t.querySelectorAll(".carousel__controls a")).forEach((b,g)=>{b.classList.remove("active")}),o.classList.add("active");const d=document.querySelector(o.getAttribute("href"));a.scroll({top:0,left:d.offsetLeft,behavior:"smooth"});break}},!1),t.addEventListener("click",function(s){for(var o=s.target;o&&o!=this;o=o.parentNode)if(o.matches(".btn-next, .btn-prev")){s.preventDefault();let d=o.classList.contains("btn-prev")?a.scrollLeft-a.clientWidth:a.scrollLeft+a.clientWidth;a.scroll({top:0,left:d,behavior:"smooth"});break}},!1),l==1&&t.classList.add("hide-btns"),m>=l&&t.classList.add("hide-sm-btns"),n>=l&&t.classList.add("hide-md-btns")}const wo="";let V=P.props;V.gap.default=0,V.cols.default=1,V.smcols.default=2,V.mdcols.default=4;const gt={components:{Card:$},name:"Carousel",data(){return{id:null}},props:{...V,colclass:{type:String,required:!1},type:{type:String,required:!1}},computed:{content(){return t=>`${t.image?`<img src="${t.image}" alt="" />`:""}${t.content?t.content:""}`}},mounted(){this.id=this._uid,this.$nextTick(function(){bt(this.$refs.wrapper)})}},kt=["id","data-cols","data-sm-cols","data-md-cols"],Nt={class:"carousel__wrapper"},wt={class:"carousel__inner"},St=["id"],Bt=["innerHTML","id"],Vt=["href"],Et=e.createElementVNode("button",{class:"btn btn-prev","data-go":"0",disabled:""},"Prev",-1),$t=e.createElementVNode("button",{class:"btn btn-next","data-go":"2"},"Next",-1);function At(t,r,a,l,m,n){const s=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock("div",{class:"container carousel",id:"carousel"+m.id,ref:"wrapper","data-cols":t.cols,"data-sm-cols":t.smcols,"data-md-cols":t.mdcols},[e.renderSlot(t.$slots,"default",{},()=>[e.createCommentVNode(" Use for titles etc ")]),e.createElementVNode("div",Nt,[e.createElementVNode("div",wt,[a.type=="card"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`row row-cols-${t.cols} row-cols-sm-${t.smcols} row-cols-md-${t.mdcols} ${t.gap?`g-${t.gap}`:""}`)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`col carousel__item${a.colclass?` ${a.colclass}`:""}`),key:d,id:"carousel"+m.id+"slide"+(d+1)},[e.createVNode(s,e.mergeProps(o,{class:t.cardclass,type:t.cardtype,btnyype:t.btntype,titleclass:t.titleclass,ctatext:t.ctatext,hidectatext:t.hidectatext}),null,16,["class","type","btnyype","titleclass","ctatext","hidectatext"])],10,St))),128))],2)):e.createCommentVNode("v-if",!0),a.type!="card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(`row row-cols-${t.cols} row-cols-sm-${t.smcols} row-cols-md-${t.mdcols} ${t.gap?`g-${t.gap}`:""}`)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`col carousel__item${a.colclass?` ${a.colclass}`:""}`),key:d,innerHTML:n.content(o),id:"carousel"+m.id+"slide"+(d+1)},null,10,Bt))),128))],2)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",{class:e.normalizeClass(`carousel__controls cols-${t.cols} cols-sm-${t.smcols} cols-md-${t.mdcols}`)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(o,d)=>(e.openBlock(),e.createElementBlock("a",{key:d,href:"#carousel"+m.id+"slide"+(d+1),class:e.normalizeClass(`control-${d+1}`)},"Slide "+e.toDisplayString(d+1),11,Vt))),128))],2),Et,$t])],8,kt)}const Lt=_(gt,[["render",At],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Carousel/Carousel.vue"]]),So="",Ct={name:"Header",props:{title:{type:String,required:!0},image:{type:String,required:!1}}},xt={class:"header-banner"},qt={class:"container"},Tt={class:"header-banner__inner"},Mt=["innerHTML"],Dt={key:0},Ht=["srcset"],zt=e.createElementVNode("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",alt:""},null,-1);function Pt(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("header",xt,[e.createElementVNode("div",qt,[e.createCommentVNode(" Space for a breadcrumb trail "),e.renderSlot(t.$slots,"breadcrumb"),e.createElementVNode("div",Tt,[e.createElementVNode("h1",{innerHTML:a.title},null,8,Mt),e.renderSlot(t.$slots,"default")])]),a.image?(e.openBlock(),e.createElementBlock("picture",Dt,[e.createCommentVNode(" Actual image only loaded on desktops "),e.createElementVNode("source",{srcset:a.image,media:"(min-width: 62em)"},null,8,Ht),e.createCommentVNode(" Placeholder image "),zt])):e.createCommentVNode("v-if",!0)])}const It=_(Ct,[["render",Pt],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Header/Header.vue"]]);function Ft(t){var r;const a=t.querySelector(".testimonial__images"),l=a.querySelectorAll("img").length;if(l==1)return!1;t.classList.add("testimonial--multi");const m=function(n){const s=t.querySelector(".btn-next"),o=t.querySelector(".btn-prev");s.setAttribute("data-go",n+1),o.setAttribute("data-go",n-1),s.removeAttribute("disabled"),o.removeAttribute("disabled"),n==1?o.setAttribute("disabled",!0):n==l&&s.setAttribute("disabled",!0)};a.addEventListener("scroll",function(n){clearTimeout(r),r=setTimeout(function(){let s=a.scrollWidth,o=a.scrollHeight,d=a.scrollLeft,b=a.scrollTop,g=Math.round(d/s*l)+1;d==0&&b!=0&&(g=Math.round(b/o*l)+1),t.setAttribute("data-show",g),m(g)},300)},!1),t.addEventListener("click",function(n){for(var s=n.target;s&&s!=this;s=s.parentNode)if(s.matches("[data-go]")){let o=parseInt(s.getAttribute("data-go")),d=0,b=0,g=a.scrollWidth,N=a.scrollHeight;g>N?b=Math.floor(g*((o-1)/l)):d=Math.floor(N*((o-1)/l)),a.scroll({top:d,left:b,behavior:"smooth"});break}},!1)}const Bo="",Ut={name:"Testimonial",props:{items:{type:Array,required:!0},background:{type:String,default:"light",required:!1}},mounted(){Ft(this.$refs.wrapper)}},vt={class:"container testimonial mb-5","data-show":"1",ref:"wrapper"},Ot={class:"row"},Gt={class:"col-md-5 position-relative"},jt={class:"testimonial__images"},Jt=["src"],Wt=e.createElementVNode("div",{class:"testimonial__controls"},[e.createElementVNode("button",{"data-go":"0",disabled:"",class:"btn-prev"},"Previous"),e.createElementVNode("button",{"data-go":"2",class:"btn-next"},"Next")],-1),Kt={class:"col-md-7"},Rt=e.createElementVNode("h2",null,"What our customers think\u2026",-1),Zt={class:"testimonial__content"},Qt=["innerHTML"],Yt=["innerHTML"],Xt={class:"testimonial__after"},ea=e.createElementVNode("span",{class:"circle circle--dots d-none d-md-block"},null,-1);function ta(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",{class:e.normalizeClass("bg-"+a.background)},[e.createElementVNode("div",Ot,[e.createElementVNode("div",Gt,[e.createElementVNode("div",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,(s,o)=>(e.openBlock(),e.createElementBlock("img",{key:o,src:s.image?s.image:"data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",alt:"",class:e.normalizeClass("h-100 w-100 object-cover"+(s.image?"":" opacity-0"))},null,10,Jt))),128))]),Wt]),e.createElementVNode("div",Kt,[Rt,e.createElementVNode("div",Zt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,(s,o)=>(e.openBlock(),e.createElementBlock("blockquote",{key:o,class:e.normalizeClass(s.class)},[e.createElementVNode("div",{innerHTML:s.quote},null,8,Qt),e.createElementVNode("cite",{innerHTML:s.cite},null,8,Yt)],2))),128))]),e.createElementVNode("div",Xt,[e.renderSlot(t.$slots,"default")])])]),ea],2)],512)}const aa=_(Ut,[["render",ta],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Testimonial/Testimonial.vue"]]),Vo="",na={components:{Input:B},name:"PropertySearchbar",props:{formaction:{type:String,required:!1},formmethod:{type:String,required:!1},location:{type:String,required:!1},locations:{type:Array,required:!1},distances:{type:Array,required:!1,default(){return[{value:"0.25",display:"+\xBC mi"},{value:"0.5",display:"+\xBD mi"},{value:"1",display:"+1 mi"},{value:"2",display:"+2 mi"},{value:"3",display:"+3 mi"},{value:"4",display:"+4 mi"},{value:"5",display:"+5 mi"}]}},pricemin:{type:Array,required:!1,default(){return[{value:"0",display:"No min"},{value:"50000",display:"\xA350k min"},{value:"75000",display:"\xA375k min"},{value:"100000",display:"\xA3100k min"},{value:"150000",display:"\xA3150k min"},{value:"200000",display:"\xA3200k min"},{value:"250000",display:"\xA3250k min"}]}},pricemax:{type:Array,required:!1,default(){return[{value:"any",display:"No max"},{value:"50000",display:"\xA350k max"},{value:"75000",display:"\xA375k max"},{value:"100000",display:"\xA3100k max"},{value:"150000",display:"\xA3150k max"},{value:"200000",display:"\xA3200k max"},{value:"250000",display:"\xA3250k max"}]}},bedsmin:{type:Array,required:!1,default(){return[{value:"any",display:"No min"},{value:"0",display:"Studio min"},{value:"1",display:"1 bed min"},{value:"2",display:"2 beds min"},{value:"3",display:"3 beds min"},{value:"4",display:"4 beds min"},{value:"5",display:"5 beds min"},{value:"6",display:"6 beds min"}]}},bedsmax:{type:Array,required:!1,default(){return[{value:"any",display:"No max"},{value:"0",display:"Studio max"},{value:"1",display:"1 bed max"},{value:"2",display:"2 beds max"},{value:"3",display:"3 beds max"},{value:"4",display:"4 beds max"},{value:"5",display:"5 beds max"},{value:"6",display:"6 beds max"}]}},propertytypes:{type:Array,required:!1,default(){return[{value:"all",display:"Show all"},{value:"Bungalow",display:"Bungalow"},{value:"Character Property",display:"Character Property"},{value:"Commercial Property",display:"Commercial Property"},{value:"Flat / Apartment",display:"Flat / Apartment"},{value:"Garage / Parking",display:"Garage / Parking"},{value:"Guest House / Hotel",display:"Guest House / Hotel"},{value:"House",display:"House"},{value:"House / Flat Share",display:"House / Flat Share"},{value:"Land",display:"Land"},{value:"Mobile / Park Home",display:"Mobile / Park Home"},{value:"Private Halls",display:"Private Halls"},{value:"Retirement Property",display:"Retirement Property"}]}}},data(){return{locationSave:""}},methods:{locationKeyup:function(t){this.$emit("locationKeyup",t)}},computed:{locationSet:{get(){return this.locationSave?this.locationSave:this.location},set(t){this.locationSave=t,this.$emit("input",t)}},locationsList(){return()=>this.locations?this.locations:[{value:"Newcastle"}]}}},oa={class:"container",ref:"wrapper"},ra={class:"property-searchbar"},sa=["action","method"],la={class:"col-12 col-md-3"},ia={class:"col-12 col-md"},ca=e.createElementVNode("span",{class:"form-label d-none d-md-block"},"Price range",-1),da={class:"row","data-input-range":""},ma={class:"col-12 col-md"},fa=e.createElementVNode("span",{class:"form-label d-none d-md-block"},"Number of beds",-1),ua={class:"row","data-input-range":""},ha={class:"col-12 col-md-2"},pa=e.createElementVNode("div",{class:"col-12 col-md mw-md-fit-content d-flex property-searchbar__btn"},[e.createElementVNode("button",{class:"btn w-100 me-0",type:"submit",value:"submit"},"Search")],-1);function _a(t,r,a,l,m,n){const s=e.resolveComponent("Input");return e.openBlock(),e.createElementBlock("div",oa,[e.renderSlot(t.$slots,"default"),e.createElementVNode("div",ra,[e.createElementVNode("form",{class:"row",action:a.formaction,method:a.formmethod},[e.createElementVNode("fieldset",la,[e.createVNode(s,{inputClass:"input--locations",modelValue:n.locationSet,"onUpdate:modelValue":r[0]||(r[0]=o=>n.locationSet=o),label:"Location",id:"location",options:n.locationsList(),required:"",placeholder:"i.e. Newcastle or NE1",onKeyupEvent:r[1]||(r[1]=o=>n.locationKeyup(...arguments)),ref:"search"},null,8,["modelValue","options"]),e.createVNode(s,{class:"select--miles",label:"Miles",id:"miles",type:"select",options:a.distances},null,8,["options"])]),e.createElementVNode("fieldset",ia,[ca,e.createElementVNode("div",da,[e.createVNode(s,{class:"col-6",label:"Minimum price",id:"price-min","data-min":"true",type:"select",options:a.pricemin},null,8,["options"]),e.createVNode(s,{class:"col-6",label:"Maximum price",id:"price-max","data-max":"true",type:"select",options:a.pricemax},null,8,["options"])])]),e.createElementVNode("fieldset",ma,[fa,e.createElementVNode("div",ua,[e.createVNode(s,{class:"col-6",label:"Minimum beds",id:"beds-min","data-min":"true",type:"select",options:a.bedsmin},null,8,["options"]),e.createVNode(s,{class:"col-6",label:"Maximum beds",id:"beds-max","data-max":"true",type:"select",options:a.bedsmax},null,8,["options"])])]),e.createElementVNode("fieldset",ha,[e.createVNode(s,{label:"Property type",id:"property-type",type:"select",options:a.propertytypes},null,8,["options"])]),pa],8,sa)]),e.renderSlot(t.$slots,"after")],512)}const ya=_(na,[["render",_a],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/PropertySearchbar/PropertySearchbar.vue"]]),ba=t=>{Array.from(t.querySelectorAll("details")).forEach((r,a)=>{r.addEventListener("mouseenter",function(l){window.matchMedia("(min-width: 62em)").matches&&r.setAttribute("open","true")},!1),r.addEventListener("mouseleave",function(l){window.matchMedia("(min-width: 62em)").matches&&r.removeAttribute("open")},!1)}),"IntersectionObserver"in window&&new IntersectionObserver(([a])=>a.target.classList.toggle("is-stuck",a.intersectionRatio<1),{threshold:[1]}).observe(t)},Eo="",ga={components:{Input:B,Logo:q,Icon:x},name:"Nav",props:{logo:{type:String,required:!1},logotext:{type:String,required:!1},logopath:{type:String,required:!1},search:{type:String,required:!1},btnlink:{type:String,required:!1},btntext:{type:String,required:!1},propertylink:{type:String,required:!1},movebutlerlink:{type:String,required:!1},iamsoldlink:{type:String,required:!1}},data(){return{locationSave:""}},methods:{subIsActive(t){return(Array.isArray(t)?t:[t]).some(a=>this.$route.path.indexOf(a)===0)}},computed:{hasLogoSlot(){return!!this.$slots.logo},hasSecondarySlot(){return!!this.$slots.secondary},hasSearchSlot(){return!!this.$slots.search},hasAccountSlot(){return!!this.$slots.account},isMarketplace(){return!1}},mounted(){this.$nextTick(function(){ba(this.$refs.wrapper)})}},ka=e.createElementVNode("input",{type:"checkbox",name:"showMenu",id:"showMenu",class:"d-none"},null,-1),Na=e.createElementVNode("input",{type:"checkbox",name:"showSearch",id:"showSearch",class:"d-none"},null,-1),wa=e.createElementVNode("input",{type:"checkbox",name:"showAccount",id:"showAccount",class:"d-none"},null,-1),Sa={class:"nav__mobile-bar"},Ba={class:"container"},Va={class:"row"},Ea={key:0,class:"col mw-md-fit-content nav__logo"},$a={key:1,class:"col mw-md-fit-content nav__logo"},Aa={href:"/",class:"text-decoration-none mb-0"},La=e.createElementVNode("div",{class:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[e.createElementVNode("label",{for:"showMenu"},"Menu")],-1),Ca={class:"nav__inner"},xa={class:"container"},qa={class:"row"},Ta={key:0,class:"col mw-md-fit-content nav__logo"},Ma={key:1,class:"col mw-md-fit-content nav__logo"},Da={href:"/",class:"text-decoration-none mb-0"},Ha={key:2,class:"col mw-fit-content nav__search-btn flex-row align-items-center"},za=[e.createElementVNode("label",{for:"showSearch"},[e.createElementVNode("svg",{class:"icon",viewBox:"0 0 32 32"},[e.createElementVNode("title",null,"Search"),e.createElementVNode("ellipse",{cx:"14.92",cy:"13.81",rx:"11.92",ry:"11.81",class:"icon__outline"}),e.createElementVNode("line",{x1:"22.68",y1:"22.75",x2:"30",y2:"30",class:"icon__outline"})])],-1)],Pa=e.createElementVNode("div",{class:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[e.createElementVNode("label",{for:"showMenu"},"Menu")],-1),Ia={class:"col-12 col-md nav__menu ms-auto flex-row align-items-center"},Fa={key:3,class:"col nav__account-btn flex-row align-items-center"},Ua=[e.createElementVNode("label",{for:"showAccount"},[e.createElementVNode("svg",{class:"icon",viewBox:"0 0 28 28"},[e.createElementVNode("path",{d:"M14,28a13.861,13.861,0,0,1-9.268-3.533l-.023.047-.721-.738L3.62,23.4l.012-.023a14,14,0,1,1,20.735,0l.012.023-.367.377-.722.738-.024-.045A13.855,13.855,0,0,1,14,28Zm0-9.58a10.5,10.5,0,0,0-1.368.092c-.085.012-.17.03-.252.047-.061.013-.124.026-.187.037l-.077.013c-.266.047-.54.095-.8.165-.108.029-.215.065-.318.1-.063.022-.125.043-.188.063l-.08.026c-.223.071-.454.144-.671.234-.125.05-.245.11-.362.168l-.146.072-.045.021c-.208.1-.423.2-.623.312-.131.074-.257.158-.379.239l-.106.07-.068.044c-.176.114-.359.232-.528.359-.137.1-.267.218-.393.327l-.054.047c-.174.15-.355.306-.519.47-.132.134-.258.277-.38.416l-.018.021c-.16.184-.3.35-.437.527-.12.161-.23.33-.337.494-.076.117-.146.238-.214.356a12.495,12.495,0,0,0,17.109,0l-.022-.037c-.061-.1-.125-.212-.192-.315-.1-.156-.214-.333-.338-.5-.141-.188-.293-.363-.436-.526-.113-.13-.253-.292-.4-.438-.161-.162-.337-.314-.517-.468l-.08-.069c-.118-.1-.24-.209-.368-.307-.183-.137-.379-.264-.568-.387l-.026-.017-.106-.07c-.125-.083-.251-.166-.381-.24-.207-.118-.429-.222-.643-.322l-.024-.011-.152-.074c-.116-.057-.235-.116-.356-.165-.214-.087-.438-.159-.656-.229l-.1-.031c-.066-.021-.132-.043-.2-.066-.1-.035-.2-.07-.309-.1-.264-.07-.538-.118-.8-.165l-.078-.014c-.063-.011-.126-.024-.187-.037-.082-.017-.167-.035-.252-.047A10.483,10.483,0,0,0,14,18.421Zm0-1.473a11.871,11.871,0,0,1,1.54.1c.1.013.192.033.284.052.069.014.139.028.209.04.34.058.672.118,1,.2.14.036.278.082.412.127l.151.05c.309.1.587.188.859.3.148.059.293.127.433.194l.13.061c.306.142.553.266.775.389.188.107.368.22.535.328.26.166.489.322.7.478.156.117.316.244.49.389.209.176.412.361.622.567.156.154.3.293.43.443.209.23.4.472.542.657l.051.066c.1.134.21.272.308.416.021.031.045.061.068.09a1.267,1.267,0,0,1,.085.117,12.525,12.525,0,1,0-19.24,0c.026-.04.056-.078.084-.114s.05-.064.073-.1c.1-.141.2-.278.3-.409l.046-.059c.2-.264.378-.478.555-.672.137-.152.281-.3.417-.43.215-.21.422-.4.635-.578.18-.15.332-.271.479-.381.208-.155.433-.31.709-.486.174-.111.346-.219.526-.319.274-.153.55-.285.783-.393l.112-.053c.144-.069.293-.14.445-.2.282-.113.578-.208.864-.3l.159-.052c.132-.044.265-.088.4-.124.331-.087.675-.148,1-.2.068-.012.137-.026.2-.039.094-.019.191-.039.288-.052A11.827,11.827,0,0,1,14,16.948Z",transform:"translate(0 -0.001)"}),e.createElementVNode("path",{d:"M5.2,10.4a5.2,5.2,0,1,1,5.2-5.2A5.206,5.206,0,0,1,5.2,10.4Zm0-8.915A3.714,3.714,0,1,0,8.915,5.2,3.719,3.719,0,0,0,5.2,1.486Z",transform:"translate(8.8 4.8)"})]),e.createElementVNode("span",null,"My account")],-1)],va={key:4,class:"col-12 col-md nav__btn mw-md-fit-content flex-row align-items-center"},Oa=["href","innerHTML"],Ga={key:0,class:"nav__menu--secondary"},ja={class:"container"},Ja={key:1,class:"nav__menu--search"},Wa={class:"bg-gradient pt-4"},Ka={class:"container"},Ra={key:0,class:"nav__menu--account"},Za={class:"container"},Qa={class:"row mb-4"},Ya={key:0,class:"col mw-md-fit-content nav__logo"},Xa={key:1,class:"col mw-md-fit-content nav__logo"},en={href:"/",class:"text-decoration-none mb-0"},tn=e.createElementVNode("div",{class:"col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn"},[e.createElementVNode("label",{for:"showAccount"},"Account")],-1),an={class:"container"},nn=e.createElementVNode("span",{class:"nav__bg"},null,-1);function on(t,r,a,l,m,n){const s=e.resolveComponent("Logo");return e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(`nav${n.hasSecondarySlot?" has-secondary":""}`),ref:"wrapper"},[ka,Na,wa,e.createCommentVNode(" Mobile bar "),e.createElementVNode("div",Sa,[e.createElementVNode("div",Ba,[e.createElementVNode("div",Va,[n.hasLogoSlot?(e.openBlock(),e.createElementBlock("div",Ea,[e.renderSlot(t.$slots,"logo")])):(e.openBlock(),e.createElementBlock("div",$a,[e.createElementVNode("a",Aa,[e.createVNode(s,{id:a.logo,path:a.logopath,desc:a.logotext,class:"pb-0"},null,8,["id","path","desc"])])])),La])])]),e.createElementVNode("div",Ca,[e.createElementVNode("div",xa,[e.createElementVNode("div",qa,[n.hasLogoSlot?(e.openBlock(),e.createElementBlock("div",Ta,[e.renderSlot(t.$slots,"logo")])):(e.openBlock(),e.createElementBlock("div",Ma,[e.createElementVNode("a",Da,[e.createVNode(s,{id:a.logo,path:a.logopath,desc:a.logotext,class:"pb-0"},null,8,["id","path","desc"])])])),n.hasSearchSlot?(e.openBlock(),e.createElementBlock("div",Ha,za)):e.createCommentVNode("v-if",!0),Pa,e.createCommentVNode(" Main menu "),e.createElementVNode("div",Ia,[e.renderSlot(t.$slots,"default")]),n.hasAccountSlot?(e.openBlock(),e.createElementBlock("div",Fa,Ua)):e.createCommentVNode("v-if",!0),a.btnlink?(e.openBlock(),e.createElementBlock("div",va,[e.createElementVNode("a",{href:a.btnlink,class:"btn me-0",innerHTML:a.btntext},null,8,Oa)])):e.createCommentVNode("v-if",!0)])]),n.hasSecondarySlot?(e.openBlock(),e.createElementBlock("div",Ga,[e.createElementVNode("div",ja,[e.renderSlot(t.$slots,"secondary")])])):e.createCommentVNode("v-if",!0),n.hasSearchSlot?(e.openBlock(),e.createElementBlock("div",Ja,[e.createElementVNode("div",Wa,[e.createElementVNode("div",Ka,[e.renderSlot(t.$slots,"search")])])])):e.createCommentVNode("v-if",!0)]),n.hasAccountSlot?(e.openBlock(),e.createElementBlock("div",Ra,[e.createElementVNode("div",Za,[e.createElementVNode("div",Qa,[n.hasLogoSlot?(e.openBlock(),e.createElementBlock("div",Ya,[e.renderSlot(t.$slots,"logo")])):(e.openBlock(),e.createElementBlock("div",Xa,[e.createElementVNode("a",en,[e.createVNode(s,{id:a.logo,path:a.logopath,desc:a.logotext,class:"pb-0"},null,8,["id","path","desc"])])])),tn])]),e.createElementVNode("div",an,[e.renderSlot(t.$slots,"account")])])):e.createCommentVNode("v-if",!0),nn],2)}const rn=_(ga,[["render",on],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Nav/Nav.vue"]]),sn=t=>{const r=new IntersectionObserver(function([l]){l.target.classList.toggle("in-view",l.intersectionRatio>0),document.getElementById("showDrawer").checked=!1},{threshold:[1]}),a=document.getElementById("drawer-end");r.observe(a)},Lo="",ln={name:"Header",props:{label:{type:String,required:!0}},mounted(){this.$nextTick(function(){let t=this.$refs.wrapper;const r=document.createDocumentFragment();Array.from(t.childNodes).forEach(a=>r.appendChild(a)),t.parentNode.insertBefore(r,t),t.parentNode.removeChild(t),this.$nextTick(function(){sn(this.$refs.drawer)})})}},cn={ref:"wrapper"},dn=e.createElementVNode("input",{type:"checkbox",name:"showDrawer",id:"showDrawer",class:"d-none"},null,-1),mn={class:"drawer__btn pb-0"},fn={class:"container text-end pb-0"},un={for:"showDrawer",class:"btn btn-secondary me-0"},hn={class:"drawer",id:"drawer",ref:"drawer"},pn=e.createElementVNode("div",{class:"container text-end pb-0"},[e.createElementVNode("label",{for:"showDrawer",class:"btn btn-tertiary mb-0 me-0 py-1 px-2"},[e.createElementVNode("span",{class:"visually-hidden"},"Close"),e.createTextVNode("\u2715")])],-1),_n=e.createElementVNode("hr",{id:"drawer-end"},null,-1);function yn(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",cn,[dn,e.createElementVNode("div",mn,[e.createElementVNode("div",fn,[e.createElementVNode("label",un,e.toDisplayString(a.label),1)])]),e.createElementVNode("div",hn,[pn,e.renderSlot(t.$slots,"default")],512),_n],512)}const bn=_(ln,[["render",yn],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Drawer/Drawer.vue"]]),gn=t=>{const r=t.querySelectorAll(".modal__outer a, .modal__outer button"),a=r[0],l=r[r.length-1],m=t.getAttribute("id"),n=function(){document.querySelector('[href="'+window.location.hash+'"]').focus(),window.location.hash="close",history.replaceState("",document.title,window.location.pathname+window.location.search),typeof window.player<"u"&&typeof window.player.pauseVideo=="function"&&window.player.pauseVideo()};t.addEventListener("keydown",function(o){o.key==="Tab"&&o.shiftKey&&document.activeElement==a?(o.preventDefault(),l.focus()):o.key==="Tab"&&!o.shiftKey&&document.activeElement==l&&(o.preventDefault(),a.focus())}),document.addEventListener("keydown",function(o){o.key==="Escape"&&document.querySelector(".modal:target")&&n()}),t.addEventListener("click",function(o){for(var d=o.target;d&&d!=this;d=d.parentNode)if(d.matches('[href="#close"]')){o.preventDefault(),n();break}else if(d.matches(".modal__dock--right")){o.preventDefault(),t.classList.contains("modal--left")||t.classList.add("modal--right"),t.classList.remove("modal--left");break}else if(d.matches(".modal__dock--left")){o.preventDefault(),t.classList.contains("modal--right")||t.classList.add("modal--left"),t.classList.remove("modal--right");break}});function s(){if(location.hash==="#"+m){console.log("Modal is now open");const o=document.querySelector(".modal:target .modal__inner > .youtube-embed:first-child:last-child a");console.log(o),o&&o.click()}}window.onhashchange=s},Co="",kn={name:"Modal",props:{id:{type:String,required:!0},returnid:{type:String,default:"close",required:!1}},mounted(){this.$nextTick(function(){gn(this.$refs.modal)})}},Nn=["id"],wn=["href"],Sn=[e.createElementVNode("span",{class:"visually-hidden"},"Close",-1)],Bn={class:"modal__outer"},Vn=["href"],En=[e.createElementVNode("span",{class:"visually-hidden"},"Close",-1),e.createTextVNode("\u2715")],$n={class:"modal__inner"},An=e.createElementVNode("button",{class:"modal__dock--left btn btn-prev",tabindex:"-1"},"Left",-1),Ln=e.createElementVNode("button",{class:"modal__dock--right btn btn-next",tabindex:"-1"},"Right",-1);function Cn(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",{class:"modal",id:a.id,role:"dialog",modal:"true",ref:"modal"},[e.createElementVNode("a",{href:`#${a.returnid?a.returnid:""}`,tabindex:"-1"},Sn,8,wn),e.createElementVNode("div",Bn,[e.createElementVNode("a",{href:`#${a.returnid?a.returnid:""}`,class:"btn btn-tertiary py-1 px-2"},En,8,Vn),e.createElementVNode("div",$n,[e.renderSlot(t.$slots,"default")])]),An,Ln],8,Nn)}const xn=_(kn,[["render",Cn],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Modal/Modal.vue"]]),Mo="",qn={name:"Stepper",props:{label:{type:String,required:!1},endlabel:{type:String,required:!1,default:"Complete"}}},Tn={class:"container"},Mn=["aria-label"],Dn={key:0,class:"h6 stepper__start"},Hn={class:"list-unstyled"},zn={class:"h6 stepper__end"};function Pn(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("nav",{class:"stepper","aria-label":a.label?a.label:"Progress"},[a.label?(e.openBlock(),e.createElementBlock("span",Dn,e.toDisplayString(a.label),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("ol",Hn,[e.renderSlot(t.$slots,"default",{},()=>[e.createCommentVNode(" Use for titles etc ")])]),e.createElementVNode("span",zn,e.toDisplayString(a.endlabel),1)],8,Mn)])}const In=_(qn,[["render",Pn],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Stepper/Stepper.vue"]]),Fn={name:"Stepper",props:{url:{type:String,required:!1},status:{type:String,required:!1},current:{type:String,required:!1}}},Un=["href","aria-current"],vn={key:0,class:"visually-hidden"};function On(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("li",null,[e.createElementVNode("a",{href:a.url,class:e.normalizeClass(`${a.status?"bg-"+a.status:""}${typeof a.current<"u"?"current":""}`),"aria-current":typeof a.current<"u"},[e.createElementVNode("span",null,[e.renderSlot(t.$slots,"default")]),a.status?(e.openBlock(),e.createElementBlock("em",vn," - status: "+e.toDisplayString(a.status),1)):e.createCommentVNode("v-if",!0)],10,Un)])}const Gn=_(Fn,[["render",On],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Stepper/Step.vue"]]),Do="",jn={name:"Tabs",data(){return{tabsID:"tabs_"+Math.random().toString(36).substr(2,9)}},computed:{tabLinks(){return()=>{const t=[];let r=1;for(const[a,l]of Object.entries(this.$slots.default()))if(l.props&&l.props.title){let m=l.props.title,n={name:this.tabsID,id:this.tabsID+"_tab"+r++,tabTitle:m};t.push(n)}return t}}},methods:{openTab:function(t){let r=0;for(const[a,l]of Object.entries(this.$slots.default()))l.props&&l.props.title&&(r==t&&(console.log(l),l.type.data().show=!0),r++)}}},Jn={class:"container tabs__container",ref:"wrapper"},Wn=["data-key","name","id","checked"],Kn={class:"tabs__links"},Rn=["for","onClick"],Zn={class:"tabs"};function Qn(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",Jn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabLinks(),(s,o)=>(e.openBlock(),e.createElementBlock("input",{type:"radio",class:"tab__input",key:o,"data-key":o,name:s.name,id:s.id,checked:o==0},null,8,Wn))),128)),e.createElementVNode("div",Kn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tabLinks(),(s,o)=>(e.openBlock(),e.createElementBlock("label",{key:o,for:s.id,class:"link",onClick:d=>n.openTab(o)},e.toDisplayString(s.tabTitle),9,Rn))),128))]),e.createElementVNode("div",Zn,[e.renderSlot(t.$slots,"default")])],512)}const Yn=_(jn,[["render",Qn],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Tabs/Tabs.vue"]]),Xn={name:"Tab",props:{title:{type:String,required:!0},lazy:{type:Boolean,required:!1}},data(){return{show:!this.lazy}},watch:{show(t,r){console.log(t)}}},eo={key:0,class:"tab"};function to(t,r,a,l,m,n){return m.show?(e.openBlock(),e.createElementBlock("div",eo,[e.renderSlot(t.$slots,"default")])):e.createCommentVNode("v-if",!0)}const ao=_(Xn,[["render",to],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Tabs/Tab.vue"]]);function no(t){if(t.addEventListener("click",function(a){for(var l=a.target;l&&l!=this;l=l.parentNode)if(l.matches(".btn-close")){a.preventDefault(),t.classList.remove("show"),setTimeout(function(){t.remove()},300);break}},!1),t.hasAttribute("data-timeout")){let a=t.getAttribute("data-timeout");setTimeout(function(){t.classList.remove("show"),setTimeout(function(){t.remove()},300)},a)}if(!document.querySelector(".alert__holder")){document.getElementsByTagName("BODY")[0];let a=document.createElement("div");a.classList.add("alert__holder"),document.querySelector("main")?document.querySelector("main").appendChild(a):document.body.appendChild(a)}let r=document.querySelector(".alert__holder");t.classList.contains("alert--fixed")&&!t.parentNode.classList.contains("alert__wrapper")&&r.appendChild(t)}const Ho="",oo={name:"Alert",props:{dismissible:{type:[String,Boolean],required:!1,default:!1},colour:{type:String,required:!1,default:"primary"},timeout:{type:[String,Number],required:!1}},mounted(){no(this.$refs.wrapper)}},ro=["data-timeout"],so={key:0,type:"button",class:"btn-close","data-bs-dismiss":"alert","aria-label":"Close"};function lo(t,r,a,l,m,n){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`container alert pb-0 ${a.dismissible?"alert--dismissible fade show":""}`),ref:"wrapper","data-timeout":a.timeout,style:e.normalizeStyle(a.timeout?`--animation-length: ${a.timeout}ms`:"")},[e.createElementVNode("div",{class:e.normalizeClass(`alert__inner bg-${a.colour}`),role:"alert"},[a.dismissible?(e.openBlock(),e.createElementBlock("button",so)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default")],2)],14,ro)}const io=_(oo,[["render",lo],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/Alert/Alert.vue"]]);let I=E.props;I.fields.required=!1;const co={components:{Table:E,Input:B},data(){return{itemsData:[...this.items]}},methods:{submitForm:function(t){console.log(this);const r=new FormData(t.target);let a=new Date;const l=a.getFullYear();let m=a.getMonth()+1,n=a.getDate();n<10&&(n="0"+n),m<10&&(m="0"+m),a=n+"/"+m+"/"+l,this.itemsData.unshift({date_added:a,user:r.get("user"),note:r.get("addNote")}),this.$emit("formSubmitted",t)}},name:"NoteFeed",props:{user:{type:String,required:!0},...I,title:{type:String,required:!1},method:{type:String,required:!1,default:"post"},action:{type:String,required:!1}}},mo={class:"container note-feed mb-2"},fo=["innerHTML"],uo=["action","method"],ho=["value"],po=e.createElementVNode("button",{class:"btn btn-tertiary"},"Submit note",-1);function _o(t,r,a,l,m,n){const s=e.resolveComponent("Table"),o=e.resolveComponent("Input");return e.openBlock(),e.createElementBlock("div",mo,[a.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:"h3",innerHTML:a.title},null,8,fo)):e.createCommentVNode("v-if",!0),e.createVNode(s,e.mergeProps({fields:[{key:"date_added"},{key:"user"},{key:"note"}],items:m.itemsData},t.$props,{class:"mb-0"}),null,16,["items"]),e.createElementVNode("form",{action:a.action,method:a.method,onSubmit:r[0]||(r[0]=e.withModifiers(d=>n.submitForm(...arguments),["prevent"]))},[e.createElementVNode("input",{type:"hidden",value:a.user,name:"user"},null,8,ho),e.createVNode(o,{id:"addNote",type:"textarea",label:"Add note",required:"",class:"mw-100"}),po],40,uo)])}const yo=_(co,[["render",_o],["__file","C:/Users/James.Lambert/Documents/Github/iamproperty-vue-component-library/src/components/NoteFeed/NoteFeed.vue"]]);p.Accordion=Ue,p.AccordionItem=We,p.Alert=io,p.Banner=at,p.Card=$,p.CardDeck=P,p.Carousel=Lt,p.Drawer=bn,p.FileUploads=He,p.Header=It,p.Icon=x,p.Input=B,p.Logo=q,p.Modal=xn,p.Nav=rn,p.NoteFeed=yo,p.PropertySearchbar=ya,p.Step=Gn,p.Stepper=In,p.Tab=ao,p.Table=E,p.Tabs=Yn,p.Testimonial=aa,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});