@eturnity/eturnity_reusable_components 7.30.3-EPDM-10647.0 → 7.30.3-EPDM-10576.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/.eslintrc.js +184 -0
  2. package/.prettierrc +8 -6
  3. package/package.json +9 -21
  4. package/src/App.vue +79 -78
  5. package/src/assets/theme.js +3 -3
  6. package/src/components/addNewButton/AddNewButton.stories.js +2 -2
  7. package/src/components/addNewButton/index.vue +48 -51
  8. package/src/components/banner/actionBanner/index.vue +54 -55
  9. package/src/components/banner/banner/banner.stories.js +5 -5
  10. package/src/components/banner/banner/index.vue +159 -159
  11. package/src/components/banner/infoBanner/index.vue +41 -53
  12. package/src/components/buttons/buttonIcon/index.vue +125 -122
  13. package/src/components/buttons/closeButton/CloseButton.stories.js +3 -3
  14. package/src/components/buttons/closeButton/index.vue +49 -49
  15. package/src/components/buttons/mainButton/index.vue +108 -108
  16. package/src/components/card/index.vue +70 -70
  17. package/src/components/collapsableInfoText/index.vue +96 -94
  18. package/src/components/deleteIcon/DeleteIcon.stories.js +4 -4
  19. package/src/components/deleteIcon/index.vue +54 -54
  20. package/src/components/draggableInputHandle/index.vue +37 -37
  21. package/src/components/dropdown/Dropdown.stories.js +9 -10
  22. package/src/components/dropdown/index.vue +106 -106
  23. package/src/components/errorMessage/index.vue +52 -52
  24. package/src/components/filter/filterSettings.vue +486 -452
  25. package/src/components/filter/index.vue +135 -135
  26. package/src/components/filter/parentDropdown.vue +73 -73
  27. package/src/components/icon/Icons.stories.js +7 -7
  28. package/src/components/icon/iconCollection.vue +53 -53
  29. package/src/components/icon/index.vue +122 -122
  30. package/src/components/iconWrapper/index.vue +156 -156
  31. package/src/components/infoCard/index.vue +30 -32
  32. package/src/components/infoText/index.vue +142 -137
  33. package/src/components/inputs/checkbox/Checkbox.stories.js +8 -8
  34. package/src/components/inputs/checkbox/index.vue +190 -180
  35. package/src/components/inputs/inputNumber/InputNumber.stories.js +41 -41
  36. package/src/components/inputs/inputNumber/index.vue +696 -701
  37. package/src/components/inputs/inputNumberQuestion/index.vue +185 -182
  38. package/src/components/inputs/inputText/InputText.stories.js +22 -22
  39. package/src/components/inputs/inputText/index.vue +337 -336
  40. package/src/components/inputs/radioButton/RadioButton.stories.js +16 -16
  41. package/src/components/inputs/radioButton/index.vue +222 -219
  42. package/src/components/inputs/searchInput/SearchInput.stories.js +8 -8
  43. package/src/components/inputs/searchInput/index.vue +127 -126
  44. package/src/components/inputs/select/index.vue +792 -792
  45. package/src/components/inputs/select/option/index.vue +124 -124
  46. package/src/components/inputs/select/select.stories.js +31 -32
  47. package/src/components/inputs/slider/index.vue +99 -99
  48. package/src/components/inputs/switchField/index.vue +220 -222
  49. package/src/components/inputs/textAreaInput/TextAreaInput.stories.js +57 -57
  50. package/src/components/inputs/textAreaInput/index.vue +171 -173
  51. package/src/components/inputs/toggle/Toggle.stories.js +14 -14
  52. package/src/components/inputs/toggle/index.vue +214 -217
  53. package/src/components/label/index.vue +82 -82
  54. package/src/components/markerItem/index.vue +68 -66
  55. package/src/components/modals/actionModal/index.vue +54 -54
  56. package/src/components/modals/infoModal/index.vue +39 -36
  57. package/src/components/modals/modal/index.vue +134 -134
  58. package/src/components/modals/modal/modal.stories.js +5 -5
  59. package/src/components/navigationTabs/index.vue +96 -94
  60. package/src/components/pageSubtitle/index.vue +55 -49
  61. package/src/components/pageTitle/index.vue +56 -56
  62. package/src/components/pagination/index.vue +92 -89
  63. package/src/components/progressBar/index.vue +107 -107
  64. package/src/components/projectMarker/index.vue +246 -244
  65. package/src/components/rangeSlider/Slider.vue +491 -465
  66. package/src/components/rangeSlider/index.vue +410 -410
  67. package/src/components/rangeSlider/utils/dom.js +5 -5
  68. package/src/components/selectedOptions/index.vue +119 -119
  69. package/src/components/sideMenu/index.vue +199 -199
  70. package/src/components/spinner/index.vue +57 -57
  71. package/src/components/tableDropdown/index.vue +520 -520
  72. package/src/components/tables/mainTable/index.vue +417 -400
  73. package/src/components/tables/viewTable/index.vue +171 -171
  74. package/src/components/threeDots/index.vue +340 -334
  75. package/src/components/videoThumbnail/index.vue +86 -86
  76. package/src/components/videoThumbnail/videoThumbnail.stories.js +14 -16
  77. package/src/helpers/numberConverter.js +2 -2
  78. package/src/helpers/translateLang.js +9 -9
  79. package/src/mixins/inputValidations.js +5 -5
  80. package/public/favicon.ico +0 -0
  81. package/public/index.html +0 -17
  82. package/src/utils/index.js +0 -12
@@ -1,65 +1,64 @@
1
1
  <template>
2
2
  <Modal :is-open="isOpen" @on-close="closeModal">
3
- <modalContainer>
4
- <modalTitle v-if="$slots.title">
3
+ <ModalContainer>
4
+ <ModalTitle v-if="$slots.title">
5
5
  <slot name="title"></slot>
6
- </modalTitle>
7
- <textContainer v-if="$slots.body">
6
+ </ModalTitle>
7
+ <TextContainer v-if="$slots.body">
8
8
  <slot name="body"></slot>
9
- </textContainer>
10
- <buttonContainer v-if="$slots.buttons">
9
+ </TextContainer>
10
+ <ButtonContainer v-if="$slots.buttons">
11
11
  <slot name="buttons"></slot>
12
- </buttonContainer>
13
- </modalContainer>
12
+ </ButtonContainer>
13
+ </ModalContainer>
14
14
  </Modal>
15
15
  </template>
16
16
  <script>
17
- import styled from 'vue3-styled-components'
18
- import { mapActions, mapState } from 'vuex'
19
- import Modal from '../modal'
20
- const modalContainer = styled.div`
21
- width: 450px;
22
- min-height: 205px;
23
- padding: 40px 40px 30px 40px;
24
- `
25
- const modalTitle = styled.div`
26
- color: ${(props) => props.theme.colors.black};
27
- font-family: ${(props) => props.theme.fonts.mainFont};
28
- font-size: 18px;
29
- font-style: normal;
30
- font-weight: 700;
31
- line-height: 120%;
32
- text-transform: uppercase;
33
- `
34
- const buttonContainer = styled.div`
35
- display: inline-flex;
36
- align-items: flex-start;
37
- gap: 20px;
38
- `
39
- const textContainer = styled.div`
40
- color: ${(props) => props.theme.colors.black};
41
- font-family: ${(props) => props.theme.fonts.mainFont};
42
- font-size: 13px;
43
- font-style: normal;
44
- font-weight: 400;
45
- line-height: normal;
46
- padding: 30px 0px;
47
- white-space: pre-wrap;
48
- `
49
- export default {
50
- name: 'actionModal',
51
- props: ['isOpen'],
52
- components: {
53
- Modal,
54
- modalContainer,
55
- modalTitle,
56
- buttonContainer,
57
- textContainer
58
- },
59
- methods: {
60
- closeModal() {
61
- this.$emit('on-close')
62
- }
17
+ import styled from 'vue3-styled-components'
18
+ import Modal from '../modal'
19
+ const ModalContainer = styled.div`
20
+ width: 450px;
21
+ min-height: 205px;
22
+ padding: 40px 40px 30px 40px;
23
+ `
24
+ const ModalTitle = styled.div`
25
+ color: ${(props) => props.theme.colors.black};
26
+ font-family: ${(props) => props.theme.fonts.mainFont};
27
+ font-size: 18px;
28
+ font-style: normal;
29
+ font-weight: 700;
30
+ line-height: 120%;
31
+ text-transform: uppercase;
32
+ `
33
+ const ButtonContainer = styled.div`
34
+ display: inline-flex;
35
+ align-items: flex-start;
36
+ gap: 20px;
37
+ `
38
+ const TextContainer = styled.div`
39
+ color: ${(props) => props.theme.colors.black};
40
+ font-family: ${(props) => props.theme.fonts.mainFont};
41
+ font-size: 13px;
42
+ font-style: normal;
43
+ font-weight: 400;
44
+ line-height: normal;
45
+ padding: 30px 0px;
46
+ white-space: pre-wrap;
47
+ `
48
+ export default {
49
+ name: 'ActionModal',
50
+ components: {
51
+ Modal,
52
+ ModalContainer,
53
+ ModalTitle,
54
+ ButtonContainer,
55
+ TextContainer,
56
+ },
57
+ props: ['isOpen'],
58
+ methods: {
59
+ closeModal() {
60
+ this.$emit('on-close')
61
+ },
62
+ },
63
63
  }
64
- }
65
64
  </script>
@@ -1,10 +1,10 @@
1
- import Modal from "./index.vue";
1
+ import Modal from './index.vue'
2
2
 
3
3
  export default {
4
- title: "Modal",
4
+ title: 'Modal',
5
5
  component: Modal,
6
6
  // argTypes: {},
7
- };
7
+ }
8
8
 
9
9
  const Template = (args, { argTypes }) => ({
10
10
  // Components used in your story `template` are defined in the `components` object
@@ -19,7 +19,7 @@ const Template = (args, { argTypes }) => ({
19
19
  // <modal :isOpen="isOpen" @on-close="$emit('on-close-summary')" :preventOutsideClose="true" :isLoading="true" :hideClose="true">
20
20
  // <div>Data....</div>
21
21
  // </modal>
22
- });
22
+ })
23
23
 
24
24
  export const Default = Template.bind({
25
25
  isOpen: true,
@@ -28,4 +28,4 @@ export const Default = Template.bind({
28
28
  hideClose: false,
29
29
  backdrop: 'dark',
30
30
  })
31
- Default.args = {};
31
+ Default.args = {}
@@ -1,188 +1,188 @@
1
1
  <template>
2
- <page-wrapper
3
- :position="position"
4
- :isOpen="isOpen"
5
- :class="{ visible: isOpen, hidden: !isOpen }"
2
+ <PageWrapper
6
3
  :backdrop="backdrop"
4
+ :class="{ visible: isOpen, hidden: !isOpen }"
5
+ :is-open="isOpen"
6
+ :position="position"
7
7
  >
8
- <modal-container @click="onClickModalContainer">
9
- <spinner v-if="isLoading" size="50px" :limitedToModal="true" />
10
- <content-container :visible="!isLoading">
11
- <slot />
12
- </content-container>
13
- <close-button v-if="!hideClose" @click="onCloseModal()" class="close" />
14
- </modal-container>
15
- </page-wrapper>
8
+ <ModalContainer @click="onClickModalContainer">
9
+ <Spinner v-if="isLoading" :limited-to-modal="true" size="50px" />
10
+ <ContentContainer :visible="!isLoading">
11
+ <slot></slot>
12
+ </ContentContainer>
13
+ <CloseButton v-if="!hideClose" class="close" @click="onCloseModal()" />
14
+ </ModalContainer>
15
+ </PageWrapper>
16
16
  </template>
17
17
 
18
18
  <script>
19
- // Rules: (as defined in https://e-turnity.atlassian.net/browse/EPDM-9694)
20
- // 1. On clicking the “escape” key, close the modal onCloseModal()
21
- // 2. Always prevent outside close
22
- // import Modal from "@eturnity/eturnity_reusable_components/src/components/modals/modal"
23
- // This is a more flexible modal box, where the parent can decide how the body of the modal looks
24
- // To use:
25
- // <modal :isOpen="isOpen" @on-close="$emit('on-close-summary')" :isLoading="true" :hideClose="true" :stopPropagation="false">
26
- // <div>Data....</div>
27
- // </modal>
19
+ // Rules: (as defined in https://e-turnity.atlassian.net/browse/EPDM-9694)
20
+ // 1. On clicking the “escape” key, close the modal onCloseModal()
21
+ // 2. Always prevent outside close
22
+ // import Modal from "@eturnity/eturnity_reusable_components/src/components/modals/modal"
23
+ // This is a more flexible modal box, where the parent can decide how the body of the modal looks
24
+ // To use:
25
+ // <modal :isOpen="isOpen" @on-close="$emit('on-close-summary')" :isLoading="true" :hideClose="true" :stopPropagation="false">
26
+ // <div>Data....</div>
27
+ // </modal>
28
28
 
29
- import styled from 'vue3-styled-components'
30
- import CloseButton from '../../buttons/closeButton'
31
- import Spinner from '../../spinner'
29
+ import styled from 'vue3-styled-components'
30
+ import CloseButton from '../../buttons/closeButton'
31
+ import Spinner from '../../spinner'
32
32
 
33
- const contentAttrs = { visible: Boolean }
34
- const ContentContainer = styled('div', contentAttrs)`
35
- visibility: ${(props) => (props.visible ? 'inherit' : 'hidden')};
36
- `
33
+ const contentAttrs = { visible: Boolean }
34
+ const ContentContainer = styled('div', contentAttrs)`
35
+ visibility: ${(props) => (props.visible ? 'inherit' : 'hidden')};
36
+ `
37
37
 
38
- const pageAttrs = { isOpen: Boolean, backdrop: String, position: String }
39
- const PageWrapper = styled('div', pageAttrs)`
40
- position: ${(props) => props.position}
41
- display: grid;
42
- top: 0;
43
- left: 0;
44
- width: 100%;
45
- height: 100%;
46
- background-color: ${(props) =>
47
- props.backdrop == 'dark'
48
- ? 'rgba(0, 0, 0, 0.4)'
49
- : 'rgba(255, 255, 255, 0.9)'};
50
- z-index: 99999;
51
- overflow: auto;
38
+ const pageAttrs = { isOpen: Boolean, backdrop: String, position: String }
39
+ const PageWrapper = styled('div', pageAttrs)`
40
+ position: ${(props) => props.position};
41
+ display: grid;
42
+ top: 0;
43
+ left: 0;
44
+ width: 100%;
45
+ height: 100%;
46
+ background-color: ${(props) =>
47
+ props.backdrop == 'dark'
48
+ ? 'rgba(0, 0, 0, 0.4)'
49
+ : 'rgba(255, 255, 255, 0.9)'};
50
+ z-index: 99999;
51
+ overflow: auto;
52
52
 
53
- &.visible {
54
- visibility: visible;
55
- opacity: 1;
56
- transition: visibility 0s linear 0s, opacity 300ms;
57
- }
53
+ &.visible {
54
+ visibility: visible;
55
+ opacity: 1;
56
+ transition: visibility 0s linear 0s, opacity 300ms;
57
+ }
58
58
 
59
- &.hidden {
60
- visibility: hidden;
61
- opacity: 0;
62
- transition: visibility 0s linear 300ms, opacity 300ms;
63
- }
59
+ &.hidden {
60
+ visibility: hidden;
61
+ opacity: 0;
62
+ transition: visibility 0s linear 300ms, opacity 300ms;
63
+ }
64
64
 
65
- @media (max-width: 425px) {
65
+ @media (max-width: 425px) {
66
+ background: white;
67
+ }
68
+ `
69
+
70
+ const ModalContainer = styled.div`
71
+ align-self: center;
72
+ justify-self: center;
73
+ position: relative;
74
+ box-shadow: 0px 4px 4px 3px rgba(0, 0, 0, 0.1);
75
+ border-radius: 4px;
66
76
  background: white;
67
- }
68
- `
77
+ margin: 0 auto;
78
+ overflow: auto;
79
+ max-width: 95%;
80
+ max-height: 95%;
81
+ min-width: 100px;
82
+ min-height: 100px;
69
83
 
70
- const ModalContainer = styled.div`
71
- align-self: center;
72
- justify-self: center;
73
- position: relative;
74
- box-shadow: 0px 4px 4px 3px rgba(0, 0, 0, 0.1);
75
- border-radius: 4px;
76
- background: white;
77
- margin: 0 auto;
78
- overflow: auto;
79
- max-width: 95%;
80
- max-height: 95%;
81
- min-width: 100px;
82
- min-height: 100px;
84
+ ::-webkit-scrollbar {
85
+ width: 0.3em;
86
+ height: 100%;
87
+ background-color: ${(props) => props.theme.colors.grey5};
88
+ }
83
89
 
84
- ::-webkit-scrollbar {
85
- width: 0.3em;
86
- height: 100%;
87
- background-color: ${(props) => props.theme.colors.grey5};
88
- }
90
+ /* Make scrollbar visible when needed */
91
+ ::-webkit-scrollbar-thumb {
92
+ background-color: ${(props) => props.theme.colors.grey3};
93
+ }
89
94
 
90
- /* Make scrollbar visible when needed */
91
- ::-webkit-scrollbar-thumb {
92
- background-color: ${(props) => props.theme.colors.grey3};
93
- }
95
+ /* Make scrollbar track visible when needed */
96
+ ::-webkit-scrollbar-track {
97
+ background-color: ${(props) => props.theme.colors.grey5};
98
+ }
94
99
 
95
- /* Make scrollbar track visible when needed */
96
- ::-webkit-scrollbar-track {
97
- background-color: ${(props) => props.theme.colors.grey5};
98
- }
100
+ .close {
101
+ position: absolute;
102
+ right: 20px;
103
+ top: 20px;
99
104
 
100
- .close {
101
- position: absolute;
102
- right: 20px;
103
- top: 20px;
105
+ @media (max-width: 425px) {
106
+ right: 14px;
107
+ top: 12px;
108
+ background: white;
109
+ position: fixed;
110
+ z-index: 99;
111
+ }
112
+ }
104
113
 
105
114
  @media (max-width: 425px) {
106
- right: 14px;
107
- top: 12px;
108
- background: white;
109
- position: fixed;
110
- z-index: 99;
115
+ width: 100%;
116
+ height: 100%;
117
+ box-shadow: none;
111
118
  }
112
- }
119
+ `
113
120
 
114
- @media (max-width: 425px) {
115
- width: 100%;
116
- height: 100%;
117
- box-shadow: none;
118
- }
119
- `
120
-
121
- export default {
122
- name: 'modal',
123
- components: {
124
- PageWrapper,
125
- ModalContainer,
126
- CloseButton,
127
- Spinner,
128
- ContentContainer
129
- },
130
- props: {
131
- isOpen: {
132
- required: true,
133
- default: false
134
- },
135
- isLoading: {
136
- required: false,
137
- default: false
121
+ export default {
122
+ name: 'Modal',
123
+ components: {
124
+ PageWrapper,
125
+ ModalContainer,
126
+ CloseButton,
127
+ Spinner,
128
+ ContentContainer,
138
129
  },
139
- hideClose: {
140
- required: false,
141
- default: false
130
+ props: {
131
+ isOpen: {
132
+ required: true,
133
+ default: false,
134
+ },
135
+ isLoading: {
136
+ required: false,
137
+ default: false,
138
+ },
139
+ hideClose: {
140
+ required: false,
141
+ default: false,
142
+ },
143
+ backdrop: {
144
+ required: false,
145
+ default: 'white',
146
+ },
147
+ position: {
148
+ required: false,
149
+ default: 'fixed',
150
+ },
151
+ stopPropagation: {
152
+ type: Boolean,
153
+ default: true,
154
+ },
142
155
  },
143
- backdrop: {
144
- required: false,
145
- default: 'white'
156
+ watch: {
157
+ isOpen: {
158
+ immediate: true,
159
+ handler(isOpen) {
160
+ document.body.style.overflow = isOpen ? 'hidden' : ''
161
+ if (isOpen) {
162
+ window.addEventListener('keydown', this.handleKeyDown)
163
+ } else {
164
+ window.removeEventListener('keydown', this.handleKeyDown)
165
+ }
166
+ },
167
+ },
146
168
  },
147
- position: {
148
- required: false,
149
- default: 'fixed'
169
+ beforeUnmount() {
170
+ window.removeEventListener('keydown', this.handleKeyDown)
150
171
  },
151
- stopPropagation: {
152
- type: Boolean,
153
- default: true
154
- }
155
- },
156
- beforeDestroy() {
157
- window.removeEventListener('keydown', this.handleKeyDown)
158
- },
159
- methods: {
160
- onCloseModal() {
161
- this.$emit('on-close')
162
- },
163
- handleKeyDown({ key }) {
164
- if (key === 'Escape') {
165
- this.onCloseModal()
166
- }
167
- },
168
- onClickModalContainer(event) {
169
- if (this.stopPropagation) {
170
- event.stopPropagation()
171
- }
172
- }
173
- },
174
- watch: {
175
- isOpen: {
176
- immediate: true,
177
- handler(isOpen) {
178
- document.body.style.overflow = isOpen ? 'hidden' : ''
179
- if (isOpen) {
180
- window.addEventListener('keydown', this.handleKeyDown)
181
- } else {
182
- window.removeEventListener('keydown', this.handleKeyDown)
172
+ methods: {
173
+ onCloseModal() {
174
+ this.$emit('on-close')
175
+ },
176
+ handleKeyDown({ key }) {
177
+ if (key === 'Escape') {
178
+ this.onCloseModal()
183
179
  }
184
- }
185
- }
180
+ },
181
+ onClickModalContainer(event) {
182
+ if (this.stopPropagation) {
183
+ event.stopPropagation()
184
+ }
185
+ },
186
+ },
186
187
  }
187
- }
188
188
  </script>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <ActionModal :is-open="isOpen" @on-close="closeModal">
3
- <modalContainer>
3
+ <ModalContainer>
4
4
  <template name="title">
5
5
  <slot name="title"></slot>
6
6
  </template>
@@ -8,62 +8,50 @@
8
8
  <slot name="body"></slot>
9
9
  </template>
10
10
  <template name="buttons">
11
- <buttonContainer>
12
- <Button type="primary" :text="$gettext('Got it')" minWidth="150px" @click="closeModal" />
13
- </buttonContainer>
11
+ <ButtonContainer>
12
+ <Button
13
+ min-width="150px"
14
+ :text="$gettext('Got it')"
15
+ type="primary"
16
+ @click="closeModal"
17
+ />
18
+ </ButtonContainer>
14
19
  </template>
15
-
16
- </modalContainer>
20
+ </ModalContainer>
17
21
  </ActionModal>
18
22
  </template>
19
23
  <script>
24
+ import styled from 'vue3-styled-components'
25
+ import ActionModal from '../actionModal'
20
26
 
21
- import styled from 'vue3-styled-components'
22
- import ActionModal from '../actionModal'
23
-
24
- const modalContainer = styled.div`
25
- width: 450px;
26
- min-height: 205px;
27
- padding: 40px 40px 30px 40px;
28
- `
29
- const modalTitle = styled.div`
30
- color: ${(props) => props.theme.colors.black};
31
- font-family: ${(props) => props.theme.fonts.mainFont};
32
- font-size: 18px;
33
- font-style: normal;
34
- font-weight: 700;
35
- line-height: 120%;
36
- text-transform: uppercase;
37
- `
38
- const buttonContainer = styled.div`
39
- display: inline-flex;
40
- align-items: flex-start;
41
- gap: 20px;
42
- `
43
- const textContainer = styled.div`
44
- color: ${(props) => props.theme.colors.black};
45
- font-family: ${(props) => props.theme.fonts.mainFont};
46
- font-size: 13px;
47
- font-style: normal;
48
- font-weight: 400;
49
- line-height: normal;
50
- padding: 30px 0px;
51
- white-space: pre-wrap;
52
- `
53
- export default {
54
- name: 'InfoModal',
55
- props: ['isOpen'],
56
- components: {
57
- Modal,
58
- modalContainer,
59
- modalTitle,
60
- buttonContainer,
61
- textContainer
62
- },
63
- methods: {
64
- closeModal() {
65
- this.$emit('on-close')
66
- }
27
+ const ModalContainer = styled.div`
28
+ width: 450px;
29
+ min-height: 205px;
30
+ padding: 40px 40px 30px 40px;
31
+ `
32
+ const ButtonContainer = styled.div`
33
+ display: inline-flex;
34
+ align-items: flex-start;
35
+ gap: 20px;
36
+ `
37
+ export default {
38
+ name: 'InfoModal',
39
+ components: {
40
+ ModalContainer,
41
+ ButtonContainer,
42
+ ActionModal,
43
+ },
44
+ props: {
45
+ isOpen: {
46
+ required: false,
47
+ default: false,
48
+ type: Boolean,
49
+ },
50
+ },
51
+ methods: {
52
+ closeModal() {
53
+ this.$emit('on-close')
54
+ },
55
+ },
67
56
  }
68
- }
69
57
  </script>