@iamproperty/components 3.1.0 → 3.2.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 (160) hide show
  1. package/README.md +141 -16
  2. package/assets/.DS_Store +0 -0
  3. package/assets/css/core.min.css +1 -1
  4. package/assets/css/core.min.css.map +1 -1
  5. package/assets/css/email.min.css +1 -1
  6. package/assets/css/email.min.css.map +1 -1
  7. package/assets/css/error.min.css +1 -1
  8. package/assets/css/error.min.css.map +1 -1
  9. package/assets/css/style.min.css +1 -1
  10. package/assets/css/style.min.css.map +1 -1
  11. package/assets/favicons/manifest.json +31 -31
  12. package/assets/js/main.js +57 -57
  13. package/assets/js/modules/accordion.js +32 -32
  14. package/assets/js/modules/alert.js +56 -56
  15. package/assets/js/modules/carousel.js +101 -101
  16. package/assets/js/modules/chart.js +218 -218
  17. package/assets/js/modules/drawer.js +15 -15
  18. package/assets/js/modules/file-upload.js +48 -48
  19. package/assets/js/modules/form.js +168 -168
  20. package/assets/js/modules/helpers.js +119 -119
  21. package/assets/js/modules/modal.js +89 -89
  22. package/assets/js/modules/nav.js +28 -28
  23. package/assets/js/modules/orderablelist.js +122 -122
  24. package/assets/js/modules/table.js +585 -585
  25. package/assets/js/modules/testimonial.js +82 -82
  26. package/assets/js/modules/youtubevideo.js +145 -145
  27. package/assets/js/scripts.bundle.js +220 -214
  28. package/assets/js/scripts.bundle.js.map +1 -1
  29. package/assets/js/scripts.bundle.min.js +1 -1
  30. package/assets/js/scripts.bundle.min.js.map +1 -1
  31. package/assets/sass/_components.scss +14 -14
  32. package/assets/sass/_corefiles.scss +40 -40
  33. package/assets/sass/_fonts.scss +16 -16
  34. package/assets/sass/_forms.scss +9 -9
  35. package/assets/sass/_func.scss +12 -12
  36. package/assets/sass/_functions/functions.scss +141 -141
  37. package/assets/sass/_functions/mixins.scss +170 -170
  38. package/assets/sass/_functions/utilities.scss +143 -143
  39. package/assets/sass/_functions/variables.scss +467 -467
  40. package/assets/sass/_print.scss +61 -61
  41. package/assets/sass/_tests/colours.spec.scss +44 -44
  42. package/assets/sass/_tests/func.spec.scss +232 -232
  43. package/assets/sass/_tests/mixins.spec.scss +194 -194
  44. package/assets/sass/_tests/sass.spec.js +9 -9
  45. package/assets/sass/_tests/typography.spec.scss +35 -35
  46. package/assets/sass/components/accordion.scss +197 -197
  47. package/assets/sass/components/alert.scss +98 -98
  48. package/assets/sass/components/cardDeck.scss +107 -107
  49. package/assets/sass/components/carousel.scss +234 -234
  50. package/assets/sass/components/charts.scss +569 -569
  51. package/assets/sass/components/drawer.scss +46 -46
  52. package/assets/sass/components/header.scss +63 -63
  53. package/assets/sass/components/modal.scss +136 -136
  54. package/assets/sass/components/nav.scss +960 -960
  55. package/assets/sass/components/property-searchbar.scss +143 -143
  56. package/assets/sass/components/snapshot.scss +70 -70
  57. package/assets/sass/components/stepper.scss +164 -164
  58. package/assets/sass/components/tabs.scss +87 -87
  59. package/assets/sass/components/testimonial.scss +132 -132
  60. package/assets/sass/components/timeline.scss +95 -95
  61. package/assets/sass/core.scss +6 -6
  62. package/assets/sass/elements/buttons.scss +251 -251
  63. package/assets/sass/elements/card.scss +288 -288
  64. package/assets/sass/elements/container.scss +236 -236
  65. package/assets/sass/elements/forms.scss +261 -261
  66. package/assets/sass/elements/links.scss +97 -97
  67. package/assets/sass/elements/lists.scss +159 -159
  68. package/assets/sass/elements/panel.scss +161 -161
  69. package/assets/sass/elements/tables.scss +290 -290
  70. package/assets/sass/elements/tooltips.scss +84 -84
  71. package/assets/sass/elements/type.scss +136 -136
  72. package/assets/sass/email.scss +65 -65
  73. package/assets/sass/error.scss +4 -4
  74. package/assets/sass/foundations/brand.scss +76 -72
  75. package/assets/sass/foundations/circles.scss +74 -74
  76. package/assets/sass/foundations/icons.scss +80 -80
  77. package/assets/sass/foundations/media.scss +50 -50
  78. package/assets/sass/foundations/reboot.scss +130 -130
  79. package/assets/sass/foundations/root.scss +125 -125
  80. package/assets/sass/main.scss +7 -7
  81. package/assets/svg/icons.svg +598 -598
  82. package/assets/svg/logo.svg +49 -43
  83. package/assets/ts/main.js +56 -56
  84. package/assets/ts/main.ts +68 -68
  85. package/assets/ts/modules/accordion.js +32 -32
  86. package/assets/ts/modules/accordion.ts +43 -43
  87. package/dist/components.es.js +381 -381
  88. package/dist/components.umd.js +16 -16
  89. package/package.json +96 -108
  90. package/src/.DS_Store +0 -0
  91. package/src/components/Accordion/Accordion.screenshot.vue +57 -57
  92. package/src/components/Accordion/Accordion.spec.js +63 -63
  93. package/src/components/Accordion/Accordion.vue +22 -22
  94. package/src/components/Accordion/AccordionItem.vue +52 -52
  95. package/src/components/Accordion/README.md +34 -34
  96. package/src/components/Alert/Alert.spec.js +49 -49
  97. package/src/components/Alert/Alert.vue +39 -39
  98. package/src/components/Alert/README.md +28 -28
  99. package/src/components/Banner/Banner.spec.js +28 -28
  100. package/src/components/Banner/Banner.vue +38 -38
  101. package/src/components/Banner/README.md +23 -23
  102. package/src/components/CardDeck/CardDeck.spec.js +99 -99
  103. package/src/components/CardDeck/CardDeck.vue +77 -77
  104. package/src/components/CardDeck/README.md +24 -24
  105. package/src/components/Carousel/Carousel.spec.js +45 -45
  106. package/src/components/Carousel/Carousel.vue +85 -85
  107. package/src/components/Carousel/README.md +19 -19
  108. package/src/components/Chart/Chart.spec.js +201 -201
  109. package/src/components/Chart/Chart.vue +88 -88
  110. package/src/components/Chart/README.md +17 -17
  111. package/src/components/Drawer/Drawer.vue +53 -53
  112. package/src/components/Drawer/README.md +22 -22
  113. package/src/components/Header/Header.spec.js +33 -33
  114. package/src/components/Header/Header.vue +38 -38
  115. package/src/components/Header/README.md +27 -27
  116. package/src/components/Modal/Modal.spec.js +22 -22
  117. package/src/components/Modal/Modal.vue +43 -43
  118. package/src/components/Modal/README.md +19 -19
  119. package/src/components/Nav/Nav.spec.js +35 -35
  120. package/src/components/Nav/Nav.vue +215 -215
  121. package/src/components/Nav/README.md +22 -22
  122. package/src/components/NoteFeed/NoteFeed.vue +79 -79
  123. package/src/components/NoteFeed/README.md +16 -16
  124. package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
  125. package/src/components/PropertySearchbar/README.md +25 -25
  126. package/src/components/Snapshot/README.md +20 -20
  127. package/src/components/Snapshot/Snapshot.vue +32 -32
  128. package/src/components/Stepper/README.md +32 -32
  129. package/src/components/Stepper/Step.vue +28 -28
  130. package/src/components/Stepper/Stepper.spec.js +99 -99
  131. package/src/components/Stepper/Stepper.vue +33 -33
  132. package/src/components/Tabs/README.md +27 -27
  133. package/src/components/Tabs/Tab.vue +32 -32
  134. package/src/components/Tabs/Tabs.vue +77 -77
  135. package/src/components/Testimonial/README.md +25 -25
  136. package/src/components/Testimonial/Testimonial.spec.js +57 -57
  137. package/src/components/Testimonial/Testimonial.vue +60 -60
  138. package/src/components/Timeline/README.md +18 -18
  139. package/src/components/Timeline/Timeline.spec.js +17 -17
  140. package/src/components/Timeline/Timeline.vue +24 -24
  141. package/src/elements/Card/Card.vue +122 -122
  142. package/src/elements/Card/README.md +24 -24
  143. package/src/elements/FileUploads/FileUploads.vue +48 -48
  144. package/src/elements/FileUploads/README.md +24 -24
  145. package/src/elements/Input/Input.vue +272 -272
  146. package/src/elements/Input/README.md +19 -19
  147. package/src/elements/Table/README.md +62 -62
  148. package/src/elements/Table/Table.spec.js +90 -90
  149. package/src/elements/Table/Table.vue +129 -129
  150. package/src/foundations/Icon/Icon.spec.js +24 -24
  151. package/src/foundations/Icon/Icon.vue +24 -24
  152. package/src/foundations/Icon/README.md +11 -11
  153. package/src/foundations/Logo/Logo.spec.js +56 -56
  154. package/src/foundations/Logo/Logo.vue +39 -39
  155. package/src/foundations/Logo/README.md +20 -20
  156. package/src/foundations/YoutubeVideo/README.md +11 -11
  157. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
  158. package/src/helpers/strings.js +12 -12
  159. package/src/index.js +27 -27
  160. package/src/vue-shim.d.ts +6 -6
@@ -1,33 +1,33 @@
1
- ### Usage
2
-
3
- ```
4
- <Stepper class="visualtest">
5
- <Step status="warning">Warning status</Step>
6
- <Step url="/step" status="danger">Danger status</Step>
7
- <Step url="/step" status="success">Success status</Step>
8
- <Step href="/step" current>Current step</Step>
9
- <Step href="/step">Future step</Step>
10
- </Stepper>
11
- ```
12
-
13
- ### Properties
14
-
15
- | Option | Type | Default Value | Description |
16
- | ------ | ---- | ------------- | ----------- |
17
- | label | String | - | Optional label to title the component |
18
- | endlabel | String | Complete | End label to signify the end of the process |
19
-
20
-
21
- ### Step Properties
22
-
23
- | Option | Type | Default Value | Description |
24
- | ------ | ---- | ------------- | ----------- |
25
- | url | String | - | Add a url to take the user back to or ahead to said step, if a url is not passed the link is disabled. |
26
- | status | String | - | Each step can have a status to highlight to the user whether the step was completed correctly. |
27
- | current | String | - | Indicate whether this is the current step |
28
-
29
- ### Slots
30
-
31
- | Option | Default Value | Description |
32
- | ------ | ------------- | ----------- |
1
+ ### Usage
2
+
3
+ ```
4
+ <Stepper class="visualtest">
5
+ <Step status="warning">Warning status</Step>
6
+ <Step url="/step" status="danger">Danger status</Step>
7
+ <Step url="/step" status="success">Success status</Step>
8
+ <Step href="/step" current>Current step</Step>
9
+ <Step href="/step">Future step</Step>
10
+ </Stepper>
11
+ ```
12
+
13
+ ### Properties
14
+
15
+ | Option | Type | Default Value | Description |
16
+ | ------ | ---- | ------------- | ----------- |
17
+ | label | String | - | Optional label to title the component |
18
+ | endlabel | String | Complete | End label to signify the end of the process |
19
+
20
+
21
+ ### Step Properties
22
+
23
+ | Option | Type | Default Value | Description |
24
+ | ------ | ---- | ------------- | ----------- |
25
+ | url | String | - | Add a url to take the user back to or ahead to said step, if a url is not passed the link is disabled. |
26
+ | status | String | - | Each step can have a status to highlight to the user whether the step was completed correctly. |
27
+ | current | String | - | Indicate whether this is the current step |
28
+
29
+ ### Slots
30
+
31
+ | Option | Default Value | Description |
32
+ | ------ | ------------- | ----------- |
33
33
  | default | - | Container for step components |
@@ -1,28 +1,28 @@
1
- <template>
2
- <li>
3
- <a :href="url" :class="`${status?'bg-'+status:''}${typeof current != 'undefined'?'current':''}`" :aria-current="typeof current != 'undefined'?true:false">
4
- <span><slot></slot></span>
5
- <em class="visually-hidden" v-if="status"> - status: {{status}}</em>
6
- </a>
7
- </li>
8
- </template>
9
-
10
- <script>
11
- export default {
12
- name: 'Stepper',
13
- props: {
14
- url: {
15
- type: String,
16
- required: false
17
- },
18
- status: {
19
- type: String,
20
- required: false
21
- },
22
- current: {
23
- type: String,
24
- required: false
25
- }
26
- }
27
- }
28
- </script>
1
+ <template>
2
+ <li>
3
+ <a :href="url" :class="`${status?'bg-'+status:''}${typeof current != 'undefined'?'current':''}`" :aria-current="typeof current != 'undefined'?true:false">
4
+ <span><slot></slot></span>
5
+ <em class="visually-hidden" v-if="status"> - status: {{status}}</em>
6
+ </a>
7
+ </li>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'Stepper',
13
+ props: {
14
+ url: {
15
+ type: String,
16
+ required: false
17
+ },
18
+ status: {
19
+ type: String,
20
+ required: false
21
+ },
22
+ current: {
23
+ type: String,
24
+ required: false
25
+ }
26
+ }
27
+ }
28
+ </script>
@@ -1,99 +1,99 @@
1
- import { mount } from '@vue/test-utils'
2
- import Stepper from './Stepper.vue'
3
- import Step from './Step.vue'
4
-
5
- describe('Stepper component', () => {
6
- it('renders 4 steps', () => {
7
-
8
- const test = mount(Stepper, {
9
- propsData: {
10
- 'label': 'Start',
11
- 'endlabel': 'End'
12
- },
13
- global: {
14
- stubs: {
15
- 'Step': Step
16
- }
17
- },
18
- slots: {
19
- default: `<Step status="success">Customer due diligence</Step>
20
- <Step url="/step" status="success">Legal Preperation</Step>
21
- <Step url="/step" current>Financial Preparation</Step>
22
- <Step url="/step">Surveys</Step>`
23
- }
24
- })
25
-
26
- expect(test.findAll('a').length).toBe(4)
27
- })
28
-
29
- it('renders a label when set', () => {
30
-
31
- const test = mount(Stepper, {
32
- propsData: {
33
- 'label': 'Start',
34
- 'endlabel': 'End'
35
- },
36
- global: {
37
- stubs: {
38
- 'Step': Step
39
- }
40
- },
41
- slots: {
42
- default: `<Step status="success">Customer due diligence</Step>
43
- <Step url="/step" status="success">Legal Preperation</Step>
44
- <Step url="/step" current>Financial Preparation</Step>
45
- <Step url="/step">Surveys</Step>`
46
- }
47
- })
48
-
49
- expect(test.find('.stepper__start').html()).toContain('Start')
50
- })
51
-
52
- it('renders an end label when set', () => {
53
-
54
- const test = mount(Stepper, {
55
- propsData: {
56
- 'label': 'Start',
57
- 'endlabel': 'End'
58
- },
59
- global: {
60
- stubs: {
61
- 'Step': Step
62
- }
63
- },
64
- slots: {
65
- default: `<Step status="success">Customer due diligence</Step>
66
- <Step url="/step" status="success">Legal Preperation</Step>
67
- <Step url="/step" current>Financial Preparation</Step>
68
- <Step url="/step">Surveys</Step>`
69
- }
70
- })
71
-
72
- expect(test.find('.stepper__end').html()).toContain('End')
73
- })
74
-
75
-
76
- it('sets status on steps', () => {
77
-
78
- const test = mount(Stepper, {
79
- propsData: {
80
- 'label': 'Start',
81
- 'endlabel': 'End'
82
- },
83
- global: {
84
- stubs: {
85
- 'Step': Step
86
- }
87
- },
88
- slots: {
89
- default: `<Step status="success">Customer due diligence</Step>
90
- <Step url="/step" status="success">Legal Preperation</Step>
91
- <Step url="/step" current>Financial Preparation</Step>
92
- <Step url="/step">Surveys</Step>`
93
- }
94
- })
95
-
96
- expect(test.find('.bg-success').exists()).toBe(true)
97
- expect(test.find('.current').exists()).toBe(true)
98
- })
99
- })
1
+ import { mount } from '@vue/test-utils'
2
+ import Stepper from './Stepper.vue'
3
+ import Step from './Step.vue'
4
+
5
+ describe('Stepper component', () => {
6
+ it('renders 4 steps', () => {
7
+
8
+ const test = mount(Stepper, {
9
+ propsData: {
10
+ 'label': 'Start',
11
+ 'endlabel': 'End'
12
+ },
13
+ global: {
14
+ stubs: {
15
+ 'Step': Step
16
+ }
17
+ },
18
+ slots: {
19
+ default: `<Step status="success">Customer due diligence</Step>
20
+ <Step url="/step" status="success">Legal Preperation</Step>
21
+ <Step url="/step" current>Financial Preparation</Step>
22
+ <Step url="/step">Surveys</Step>`
23
+ }
24
+ })
25
+
26
+ expect(test.findAll('a').length).toBe(4)
27
+ })
28
+
29
+ it('renders a label when set', () => {
30
+
31
+ const test = mount(Stepper, {
32
+ propsData: {
33
+ 'label': 'Start',
34
+ 'endlabel': 'End'
35
+ },
36
+ global: {
37
+ stubs: {
38
+ 'Step': Step
39
+ }
40
+ },
41
+ slots: {
42
+ default: `<Step status="success">Customer due diligence</Step>
43
+ <Step url="/step" status="success">Legal Preperation</Step>
44
+ <Step url="/step" current>Financial Preparation</Step>
45
+ <Step url="/step">Surveys</Step>`
46
+ }
47
+ })
48
+
49
+ expect(test.find('.stepper__start').html()).toContain('Start')
50
+ })
51
+
52
+ it('renders an end label when set', () => {
53
+
54
+ const test = mount(Stepper, {
55
+ propsData: {
56
+ 'label': 'Start',
57
+ 'endlabel': 'End'
58
+ },
59
+ global: {
60
+ stubs: {
61
+ 'Step': Step
62
+ }
63
+ },
64
+ slots: {
65
+ default: `<Step status="success">Customer due diligence</Step>
66
+ <Step url="/step" status="success">Legal Preperation</Step>
67
+ <Step url="/step" current>Financial Preparation</Step>
68
+ <Step url="/step">Surveys</Step>`
69
+ }
70
+ })
71
+
72
+ expect(test.find('.stepper__end').html()).toContain('End')
73
+ })
74
+
75
+
76
+ it('sets status on steps', () => {
77
+
78
+ const test = mount(Stepper, {
79
+ propsData: {
80
+ 'label': 'Start',
81
+ 'endlabel': 'End'
82
+ },
83
+ global: {
84
+ stubs: {
85
+ 'Step': Step
86
+ }
87
+ },
88
+ slots: {
89
+ default: `<Step status="success">Customer due diligence</Step>
90
+ <Step url="/step" status="success">Legal Preperation</Step>
91
+ <Step url="/step" current>Financial Preparation</Step>
92
+ <Step url="/step">Surveys</Step>`
93
+ }
94
+ })
95
+
96
+ expect(test.find('.bg-success').exists()).toBe(true)
97
+ expect(test.find('.current').exists()).toBe(true)
98
+ })
99
+ })
@@ -1,33 +1,33 @@
1
- <template>
2
- <div class="container">
3
- <nav class="stepper" :aria-label="label?label:'Progress'">
4
- <span class="h6 stepper__start" v-if="label">{{label}}</span>
5
- <ol class="list-unstyled">
6
- <slot><!-- Use for titles etc --></slot>
7
- </ol>
8
- <span class="h6 stepper__end">{{endlabel}}</span>
9
- </nav>
10
- </div>
11
- </template>
12
-
13
-
14
- <style lang="scss">
15
- @import "../../../assets/sass/components/stepper.scss";
16
- </style>
17
-
18
- <script>
19
- export default {
20
- name: 'Stepper',
21
- props: {
22
- label: {
23
- type: String,
24
- required: false
25
- },
26
- endlabel: {
27
- type: String,
28
- required: false,
29
- default: "Complete"
30
- }
31
- }
32
- }
33
- </script>
1
+ <template>
2
+ <div class="container">
3
+ <nav class="stepper" :aria-label="label?label:'Progress'">
4
+ <span class="h6 stepper__start" v-if="label">{{label}}</span>
5
+ <ol class="list-unstyled">
6
+ <slot><!-- Use for titles etc --></slot>
7
+ </ol>
8
+ <span class="h6 stepper__end">{{endlabel}}</span>
9
+ </nav>
10
+ </div>
11
+ </template>
12
+
13
+
14
+ <style lang="scss">
15
+ @import "../../../assets/sass/components/stepper.scss";
16
+ </style>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'Stepper',
21
+ props: {
22
+ label: {
23
+ type: String,
24
+ required: false
25
+ },
26
+ endlabel: {
27
+ type: String,
28
+ required: false,
29
+ default: "Complete"
30
+ }
31
+ }
32
+ }
33
+ </script>
@@ -1,28 +1,28 @@
1
- ### Usage
2
-
3
- ```
4
- <Tabs class="visualtest">
5
- <Tab title="Tab content 1">
6
- <h2>Tab content 1</h2>
7
- </Tab>
8
- <Tab title="Tab content 2">
9
- <h2>Tab content 2</h2>
10
- </Tab>
11
- <Tab title="Tab content 3">
12
- <h2>Tab content 3</h2>
13
- </Tab>
14
- </Tabs>
15
- ```
16
-
17
- ### Tab Properties
18
-
19
- | Option | Type | Default Value | Description |
20
- | ------ | ---- | ------------- | ----------- |
21
- | title | String | - | Used for the heading of the component |
22
- | lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the tab link. |
23
-
24
- ### Slots
25
-
26
- | Option | Default Value | Description |
27
- | ------ | ------------- | ----------- |
1
+ ### Usage
2
+
3
+ ```
4
+ <Tabs class="visualtest">
5
+ <Tab title="Tab content 1">
6
+ <h2>Tab content 1</h2>
7
+ </Tab>
8
+ <Tab title="Tab content 2">
9
+ <h2>Tab content 2</h2>
10
+ </Tab>
11
+ <Tab title="Tab content 3">
12
+ <h2>Tab content 3</h2>
13
+ </Tab>
14
+ </Tabs>
15
+ ```
16
+
17
+ ### Tab Properties
18
+
19
+ | Option | Type | Default Value | Description |
20
+ | ------ | ---- | ------------- | ----------- |
21
+ | title | String | - | Used for the heading of the component |
22
+ | lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the tab link. |
23
+
24
+ ### Slots
25
+
26
+ | Option | Default Value | Description |
27
+ | ------ | ------------- | ----------- |
28
28
  | default | - | Can be populated with Tab components |
@@ -1,32 +1,32 @@
1
- <template>
2
- <div class="tab" v-if="show">
3
- <slot></slot>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: 'Tab',
10
- props: {
11
- title: {
12
- type: String,
13
- required: true
14
- },
15
- lazy: {
16
- type: Boolean,
17
- required: false
18
- }
19
- },
20
- data() {
21
- return {
22
- show: this.lazy ? false : true
23
- }
24
- },
25
- watch: {
26
-
27
- show(newVal, oldVal) {
28
- console.log(newVal)
29
- }
30
- }
31
- }
32
- </script>
1
+ <template>
2
+ <div class="tab" v-if="show">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'Tab',
10
+ props: {
11
+ title: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ lazy: {
16
+ type: Boolean,
17
+ required: false
18
+ }
19
+ },
20
+ data() {
21
+ return {
22
+ show: this.lazy ? false : true
23
+ }
24
+ },
25
+ watch: {
26
+
27
+ show(newVal, oldVal) {
28
+ console.log(newVal)
29
+ }
30
+ }
31
+ }
32
+ </script>
@@ -1,77 +1,77 @@
1
- <template>
2
- <div class="container tabs__container" ref="wrapper">
3
-
4
- <input type="radio" class="tab__input" v-for="(value,index) in tabLinks()" :key="index" :data-key="index" :name="value.name" :id="value.id" :checked="(index == 0 ? true:false)" />
5
-
6
- <div class="tabs__links">
7
- <label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link" v-on:click="openTab(index)">
8
- {{value.tabTitle}}
9
- </label>
10
- </div>
11
- <div class="tabs">
12
- <slot></slot>
13
- </div>
14
- </div>
15
- </template>
16
-
17
- <style lang="scss">
18
- @import "../../../assets/sass/components/tabs.scss";
19
- </style>
20
-
21
- <script>
22
- export default {
23
- name: 'Tabs',
24
- data () {
25
- return {
26
- tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
27
- }
28
- },
29
- computed: {
30
- tabLinks (){
31
- return () => {
32
-
33
- const tabLinks = [];
34
- let i = 1;
35
-
36
- for (const [key, value] of Object.entries(this.$slots.default())) {
37
-
38
- // Check if the value in the object is actually a tab and has the correct data
39
- if(value.props && value.props.title){
40
-
41
- let tabTitle = value.props.title;
42
-
43
- let tab = {
44
- name: this.tabsID,
45
- id: this.tabsID+"_tab"+i++,
46
- tabTitle: tabTitle
47
- }
48
-
49
- tabLinks.push(tab);
50
- }
51
- }
52
-
53
- return tabLinks;
54
- }
55
- }
56
- },
57
- methods: {
58
- openTab: function (index) {
59
-
60
- let i = 0;
61
- for (const [key, value] of Object.entries(this.$slots.default())) {
62
-
63
- if(value.props && value.props.title){
64
-
65
- if(i == index){
66
-
67
- console.log(value)
68
- value.type.data().show = true;
69
- }
70
-
71
- i++;
72
- }
73
- }
74
- }
75
- }
76
- }
77
- </script>
1
+ <template>
2
+ <div class="container tabs__container" ref="wrapper">
3
+
4
+ <input type="radio" class="tab__input" v-for="(value,index) in tabLinks()" :key="index" :data-key="index" :name="value.name" :id="value.id" :checked="(index == 0 ? true:false)" />
5
+
6
+ <div class="tabs__links">
7
+ <label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link" v-on:click="openTab(index)">
8
+ {{value.tabTitle}}
9
+ </label>
10
+ </div>
11
+ <div class="tabs">
12
+ <slot></slot>
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <style lang="scss">
18
+ @import "../../../assets/sass/components/tabs.scss";
19
+ </style>
20
+
21
+ <script>
22
+ export default {
23
+ name: 'Tabs',
24
+ data () {
25
+ return {
26
+ tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
27
+ }
28
+ },
29
+ computed: {
30
+ tabLinks (){
31
+ return () => {
32
+
33
+ const tabLinks = [];
34
+ let i = 1;
35
+
36
+ for (const [key, value] of Object.entries(this.$slots.default())) {
37
+
38
+ // Check if the value in the object is actually a tab and has the correct data
39
+ if(value.props && value.props.title){
40
+
41
+ let tabTitle = value.props.title;
42
+
43
+ let tab = {
44
+ name: this.tabsID,
45
+ id: this.tabsID+"_tab"+i++,
46
+ tabTitle: tabTitle
47
+ }
48
+
49
+ tabLinks.push(tab);
50
+ }
51
+ }
52
+
53
+ return tabLinks;
54
+ }
55
+ }
56
+ },
57
+ methods: {
58
+ openTab: function (index) {
59
+
60
+ let i = 0;
61
+ for (const [key, value] of Object.entries(this.$slots.default())) {
62
+
63
+ if(value.props && value.props.title){
64
+
65
+ if(i == index){
66
+
67
+ console.log(value)
68
+ value.type.data().show = true;
69
+ }
70
+
71
+ i++;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ </script>