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