@eturnity/eturnity_reusable_components 7.12.6-EPDM-7951.6 → 7.12.7--EPDM-5518.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 (51) hide show
  1. package/.storybook/preview.js +1 -1
  2. package/package.json +23 -18
  3. package/src/App.vue +2 -2
  4. package/src/components/addNewButton/index.vue +3 -5
  5. package/src/components/buttons/buttonIcon/index.vue +1 -1
  6. package/src/components/buttons/closeButton/index.vue +1 -1
  7. package/src/components/buttons/mainButton/index.vue +1 -6
  8. package/src/components/deleteIcon/DeleteIcon.stories.js +7 -7
  9. package/src/components/deleteIcon/index.vue +21 -25
  10. package/src/components/draggableInputHandle/index.vue +25 -24
  11. package/src/components/dropdown/index.vue +110 -129
  12. package/src/components/errorMessage/index.vue +1 -1
  13. package/src/components/filter/filterSettings.vue +97 -55
  14. package/src/components/filter/index.vue +3 -3
  15. package/src/components/filter/parentDropdown.vue +2 -2
  16. package/src/components/icon/iconCollection.vue +2 -2
  17. package/src/components/icon/index.vue +69 -76
  18. package/src/components/iconWrapper/index.vue +4 -1
  19. package/src/components/infoCard/index.vue +3 -2
  20. package/src/components/infoText/index.vue +1 -1
  21. package/src/components/inputs/checkbox/index.vue +16 -24
  22. package/src/components/inputs/inputNumber/index.vue +10 -7
  23. package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
  24. package/src/components/inputs/inputText/index.vue +4 -4
  25. package/src/components/inputs/radioButton/index.vue +1 -1
  26. package/src/components/inputs/searchInput/index.vue +8 -7
  27. package/src/components/inputs/select/index.vue +69 -197
  28. package/src/components/inputs/select/option/index.vue +5 -5
  29. package/src/components/inputs/slider/index.vue +16 -16
  30. package/src/components/inputs/switchField/index.vue +2 -2
  31. package/src/components/inputs/textAreaInput/index.vue +2 -2
  32. package/src/components/inputs/toggle/index.vue +2 -2
  33. package/src/components/label/index.vue +31 -27
  34. package/src/components/markerItem/index.vue +96 -0
  35. package/src/components/modals/modal/index.vue +6 -2
  36. package/src/components/navigationTabs/index.vue +20 -27
  37. package/src/components/pageSubtitle/index.vue +1 -1
  38. package/src/components/pageTitle/index.vue +4 -4
  39. package/src/components/pagination/index.vue +3 -5
  40. package/src/components/progressBar/index.vue +1 -1
  41. package/src/components/projectMarker/index.vue +8 -11
  42. package/src/components/selectedOptions/index.vue +145 -0
  43. package/src/components/sideMenu/index.vue +1 -1
  44. package/src/components/spinner/index.vue +11 -6
  45. package/src/components/tableDropdown/index.vue +26 -21
  46. package/src/components/tables/mainTable/exampleNested.vue +1 -1
  47. package/src/components/tables/mainTable/index.vue +9 -10
  48. package/src/components/tables/viewTable/index.vue +2 -2
  49. package/src/components/threeDots/index.vue +1 -1
  50. package/src/components/videoThumbnail/index.vue +100 -95
  51. package/src/main.js +11 -4
@@ -0,0 +1,145 @@
1
+ <template>
2
+ <page-container>
3
+ <box-container>
4
+ <selected-container
5
+ >{{ numberSelected }} {{ $gettext('selected') }}</selected-container
6
+ >
7
+ <list-container v-if="optionsList.length">
8
+ <list-item
9
+ v-for="item in optionsList"
10
+ :key="item.type"
11
+ :hoverColor="item.hoverColor"
12
+ @click="$emit('on-' + item.type)"
13
+ >
14
+ {{ item.name }}
15
+ </list-item>
16
+ </list-container>
17
+ <empty-text v-if="!optionsList.length">
18
+ {{ $gettext('no_batch_actions_available') }}
19
+ </empty-text>
20
+ <icon-container @click="$emit('on-close')">
21
+ <icon
22
+ name="close_for_modals,_tool_tips"
23
+ color="white"
24
+ size="14px"
25
+ cursor="pointer"
26
+ />
27
+ </icon-container>
28
+ </box-container>
29
+ </page-container>
30
+ </template>
31
+
32
+ <script>
33
+ // import SelectedOptions from "@eturnity/eturnity_reusable_components/src/components/selectedOptions"
34
+ // optionsList = [
35
+ // {
36
+ // type: 'export',
37
+ // name: 'Export'
38
+ // },
39
+ // {
40
+ // type: 'delete',
41
+ // name: 'Delete',
42
+ // hoverColor: 'red' // default is green
43
+ // }
44
+ // ]
45
+ // @on-${type}="function" should $emit the callback for the 'type' in the optionsList
46
+ // <selected-options
47
+ // :numberSelected="numberSelected"
48
+ // :optionsList="optionsList"
49
+ // @on-close="onCloseFunction()"
50
+ // @on-export="function()" @on-delete="function()"
51
+ // />
52
+ import styled from 'vue-styled-components'
53
+ import Icon from '../icon'
54
+
55
+ const PageContainer = styled.div`
56
+ position: fixed;
57
+ bottom: 30px;
58
+ left: 50%;
59
+ transform: translateX(-50%);
60
+ `
61
+
62
+ const SelectedContainer = styled.div`
63
+ display: grid;
64
+ align-items: center;
65
+ height: 100%;
66
+ padding-right: 20px;
67
+ border-right: 1px solid rgba(255, 255, 255, 0.2);
68
+ `
69
+
70
+ const BoxContainer = styled.div`
71
+ display: flex;
72
+ align-items: center;
73
+ background-color: ${(props) => props.theme.colors.black};
74
+ opacity: 90%;
75
+ color: ${(props) => props.theme.colors.white};
76
+ border-radius: 4px;
77
+ padding: 8px 10px 8px 20px;
78
+ font-size: 14px;
79
+ height: 40px;
80
+ `
81
+
82
+ const ListContainer = styled.div`
83
+ padding: 0 20px;
84
+ display: flex;
85
+ gap: 20px;
86
+ color: ${(props) => props.theme.colors.white};
87
+ `
88
+
89
+ const ListAttrs = {
90
+ hoverColor: String
91
+ }
92
+ const ListItem = styled('div', ListAttrs)`
93
+ cursor: pointer;
94
+ &:hover {
95
+ color: ${(props) =>
96
+ props.hoverColor
97
+ ? props.theme.colors[props.hoverColor]
98
+ : props.theme.colors.green};
99
+ }
100
+ `
101
+
102
+ const IconContainer = styled.div`
103
+ display: grid;
104
+ align-items: center;
105
+ justify-items: center;
106
+ height: 30px;
107
+ width: 30px;
108
+ cursor: pointer;
109
+ margin-left: 20px;
110
+
111
+ &:hover {
112
+ background: rgba(255, 255, 255, 0.1);
113
+ border-radius: 4px;
114
+ }
115
+ `
116
+
117
+ const EmptyText = styled.div`
118
+ color: ${(props) => props.theme.colors.white};
119
+ font-size: 13px;
120
+ padding-left: 16px;
121
+ `
122
+
123
+ export default {
124
+ name: 'selected-options',
125
+ components: {
126
+ PageContainer,
127
+ BoxContainer,
128
+ SelectedContainer,
129
+ ListContainer,
130
+ ListItem,
131
+ Icon,
132
+ IconContainer,
133
+ EmptyText
134
+ },
135
+ props: {
136
+ optionsList: {
137
+ required: true
138
+ },
139
+ numberSelected: {
140
+ required: true,
141
+ default: 0
142
+ }
143
+ }
144
+ }
145
+ </script>
@@ -78,7 +78,7 @@
78
78
  </template>
79
79
 
80
80
  <script>
81
- import styled from 'vue3-styled-components'
81
+ import styled from 'vue-styled-components'
82
82
  import Icon from '../icon'
83
83
  import Spinner from '../spinner'
84
84
 
@@ -1,19 +1,24 @@
1
1
  <template>
2
2
  <spinner-container v-if="fullWidth">
3
3
  <container>
4
- <spinner-wrapper :size="size" />
4
+ <spinner-wrapper
5
+ :size="size"
6
+ :src="require('../../assets/icons/black_spinner.svg')"
7
+ />
5
8
  </container>
6
9
  </spinner-container>
7
10
  <container v-else :limitedToModal="limitedToModal">
8
- <spinner-wrapper :size="size" />
11
+ <spinner-wrapper
12
+ :size="size"
13
+ :src="require('../../assets/icons/black_spinner.svg')"
14
+ />
9
15
  </container>
10
16
  </template>
11
17
 
12
18
  <script>
13
19
  // import Spinner from "@eturnity/eturnity_reusable_components/src/components/spinner"
14
20
  // <spinner size="30px" />
15
- import styled from 'vue3-styled-components'
16
- import SpinnerSvg from '../../assets/icons/black_spinner.svg?component'
21
+ import styled from 'vue-styled-components'
17
22
 
18
23
  const SpinnerContainer = styled.div`
19
24
  position: fixed;
@@ -38,7 +43,7 @@ const Container = styled('div', containerAttrs)`
38
43
  `
39
44
 
40
45
  const spinnerAttrs = { size: String }
41
- const SpinnerWrapper = styled(SpinnerSvg, spinnerAttrs)`
46
+ const SpinnerWrapper = styled('img', spinnerAttrs)`
42
47
  width: ${(props) => (props.size ? props.size : '60px')};
43
48
  `
44
49
 
@@ -64,4 +69,4 @@ export default {
64
69
  }
65
70
  }
66
71
  }
67
- </script>
72
+ </script>
@@ -53,7 +53,7 @@
53
53
  </no-template>
54
54
  <input-container
55
55
  v-if="item.type === 'input'"
56
- @click.stop="onInputClick()"
56
+ @click.native.stop="onInputClick()"
57
57
  >
58
58
  <text-container
59
59
  v-if="customInputDisabled"
@@ -93,11 +93,16 @@
93
93
  triggerType="hover"
94
94
  ></et-popover>
95
95
  <arrow-down
96
- @click.stop="toggleOpen"
96
+ @click.native.stop="toggleOpen"
97
97
  v-if="!isOpen"
98
98
  class="arrow-dropdown"
99
+ :src="require('../../assets/icons/collapse_arrow_icon.svg')"
100
+ />
101
+ <arrow-up
102
+ @click.native.stop="toggleOpen"
103
+ v-else
104
+ :src="require('../../assets/icons/collapse_arrow_icon.svg')"
99
105
  />
100
- <arrow-up @click.stop="toggleOpen" v-else />
101
106
  </arrow-wrapper>
102
107
  <options-container v-if="isOpen" ref="optionsContainer">
103
108
  <options-wrapper @click.prevent.stop>
@@ -122,18 +127,20 @@
122
127
  :key="index"
123
128
  @click="onItemClick(item)"
124
129
  :tabindex="0"
125
- @keyup.enter="onItemClick(item)"
130
+ @keyup.enter.native="onItemClick(item)"
126
131
  >
127
- <template v-for="(option, idx) in optionsDisplay" :key="idx">
128
- <span v-if="option !== 'template'">
132
+ <template v-for="(option, idx) in optionsDisplay">
133
+ <span v-if="option !== 'template'" :key="idx">
129
134
  {{ !!item[option] ? item[option] : '-' }}
130
135
  </span>
131
136
  <template-button
137
+ :key="idx"
132
138
  @click.stop="onTemplateClick(item)"
133
139
  v-else-if="option === 'template' && item.has_template"
134
140
  >{{ $gettext('Use template...') }}</template-button
135
141
  >
136
142
  <no-template
143
+ :key="idx"
137
144
  v-else-if="option === 'template' && !item.has_template"
138
145
  >
139
146
  {{ $gettext('No main component template') }}
@@ -176,12 +183,10 @@
176
183
  // :optionsDisplay="['display_name', 'company_item_number']" // Array. what should be displayed
177
184
  // :disabled="true"
178
185
  // />
179
- import styled from 'vue3-styled-components'
180
- import Spinner from '../spinner'
181
- import SearchInput from '../inputs/searchInput'
182
- import InputText from '../inputs/inputText'
183
- import CollapseArrowIcon from '../../assets/icons/collapse_arrow_icon.svg'
184
- import SubpositionMarkerIcon from '../../assets/icons/subposition_marker.svg'
186
+ import styled from 'vue-styled-components'
187
+ import Spinner from '@eturnity/eturnity_reusable_components/src/components/spinner'
188
+ import SearchInput from '@eturnity/eturnity_reusable_components/src/components/inputs/searchInput'
189
+ import InputText from '@eturnity/eturnity_reusable_components/src/components/inputs/inputText'
185
190
 
186
191
  const rowAttrs = { disabled: Boolean, isOpen: Boolean }
187
192
  const DropdownRow = styled('div', rowAttrs)`
@@ -232,8 +237,9 @@ const ComponentContainer = styled('div', containerAttrs)`
232
237
  padding: 5px 4px;
233
238
  `
234
239
 
235
- const ArrowDown = styled(CollapseArrowIcon)`
240
+ const ArrowDown = styled.img`
236
241
  width: 8px;
242
+ transform: rotate(0deg);
237
243
  transition: transform 150ms ease;
238
244
  `
239
245
 
@@ -397,7 +403,9 @@ const TextContainer = styled.div`
397
403
  align-items: center;
398
404
  `
399
405
 
400
- const NestedIcon = styled(SubpositionMarkerIcon)`
406
+ const NestedIcon = styled.div`
407
+ background-image: ${() =>
408
+ `url(${require('../../assets/icons/subposition_marker.svg')})`};
401
409
  height: 10px;
402
410
  width: 6px;
403
411
  `
@@ -596,7 +604,7 @@ export default {
596
604
  }
597
605
  })
598
606
  })
599
- if (Array.isArray(this.dynamicGridWidth)) {
607
+ if (this.dynamicGridWidth.length === this.optionsDisplay.length) {
600
608
  this.dynamicGridWidth = this.dynamicGridWidth.join(' ')
601
609
  }
602
610
  }
@@ -619,12 +627,9 @@ export default {
619
627
  })
620
628
  }
621
629
  },
622
- optionItems: {
623
- immediate: true,
624
- handler(val) {
625
- if (val && val.length) {
626
- this.setDropdownWidth(val)
627
- }
630
+ optionItems(val) {
631
+ if (val && val.length) {
632
+ this.setDropdownWidth(val)
628
633
  }
629
634
  }
630
635
  }
@@ -161,7 +161,7 @@
161
161
 
162
162
  <script>
163
163
  import draggable from "vuedraggable"
164
- import styled from "vue3-styled-components"
164
+ import styled from "vue-styled-components"
165
165
  import MainTable from "@/components/reusable-components/tables/MainTable"
166
166
  import InputText from "@eturnity/eturnity_reusable_components/src/components/inputs/inputText"
167
167
  import DeleteIcon from "@/components/reusable-components/DeleteIcon"
@@ -29,12 +29,8 @@
29
29
  <script>
30
30
  // ToDo: add this to storybook
31
31
  // import MainTable from "@eturnity/eturnity_reusable_components/src/components/tables/mainTable"
32
- import styled from 'vue3-styled-components'
32
+ import styled from 'vue-styled-components'
33
33
  import Spinner from '../../spinner'
34
- import dragIconSvg from '../../../assets/icons/drag_icon.svg?url'
35
- import subpositionIconSvg from '../../../assets/icons/subposition_icon.svg?url'
36
- import arrowDownSvg from '../../../assets/icons/arrow_down.svg?url'
37
- import arrowUpRedSvg from '../../../assets/icons/arrow_up_red.svg?url'
38
34
 
39
35
  const pageContainerProps = {
40
36
  tableHeight: String,
@@ -126,7 +122,6 @@ const TableContainer = styled('table', containerAttrs)`
126
122
  background-color: ${(props) => props.theme.colors.white};
127
123
  cursor: ${(props) => (props.tableCursor ? props.tableCursor : 'auto')};
128
124
 
129
- .select-button,
130
125
  .arrow-container,
131
126
  .input-placeholder,
132
127
  .table-dropdown-item {
@@ -327,7 +322,8 @@ const TableContainer = styled('table', containerAttrs)`
327
322
  height: 16px;
328
323
  cursor: grab;
329
324
  background-position: center;
330
- background-image: ${() => `url(${dragIconSvg})`};
325
+ background-image: ${() =>
326
+ `url(${require('../../../assets/icons/drag_icon.svg')})`};
331
327
 
332
328
  &:active {
333
329
  cursor: grabbing;
@@ -339,7 +335,8 @@ const TableContainer = styled('table', containerAttrs)`
339
335
  height: 11px;
340
336
  background: no-repeat;
341
337
  margin-left: 10px;
342
- background-image: ${() => `url(${subpositionIconSvg})`};
338
+ background-image: ${() =>
339
+ `url(${require('../../../assets/icons/subposition_icon.svg')})`};
343
340
  }
344
341
 
345
342
  .arrow-down {
@@ -347,7 +344,8 @@ const TableContainer = styled('table', containerAttrs)`
347
344
  height: 11px;
348
345
  background: no-repeat;
349
346
  background-position: center;
350
- background-image: ${() => `url(${arrowDownSvg})`};
347
+ background-image: ${() =>
348
+ `url(${require('../../../assets/icons/arrow_down.svg')})`};
351
349
  }
352
350
 
353
351
  .arrow-up {
@@ -355,7 +353,8 @@ const TableContainer = styled('table', containerAttrs)`
355
353
  height: 11px;
356
354
  background: no-repeat;
357
355
  background-position: center;
358
- background-image: ${() => `url(${arrowUpRedSvg})`};
356
+ background-image: ${() =>
357
+ `url(${require('../../../assets/icons/arrow_up_red.svg')})`};
359
358
  }
360
359
  }
361
360
 
@@ -29,7 +29,7 @@
29
29
  </table-item>
30
30
  <icons-container v-if="showIconsContainer">
31
31
  <delete-icon
32
- @click="$emit('on-click-delete', index)"
32
+ @click.native="$emit('on-click-delete', index)"
33
33
  color="gray"
34
34
  />
35
35
  </icons-container>
@@ -45,7 +45,7 @@
45
45
  // This is a read only table. Pass it data, and it displays it
46
46
  // ToDo: add this to storybook
47
47
  // import ViewTable from "@eturnity/eturnity_reusable_components/src/components/tables/viewTable"
48
- import styled from 'vue3-styled-components'
48
+ import styled from 'vue-styled-components'
49
49
  import DeleteIcon from '../../deleteIcon'
50
50
  import Spinner from '../../spinner'
51
51
 
@@ -123,7 +123,7 @@
123
123
  // },
124
124
  // ],
125
125
 
126
- import styled from 'vue3-styled-components'
126
+ import styled from 'vue-styled-components'
127
127
  import Spinner from '../spinner'
128
128
 
129
129
  const PageContainerAttrs = {
@@ -1,103 +1,108 @@
1
1
  <template>
2
- <wrapper :width="width" :height="height" :fit="fit">
3
- <img :src="src" />
4
- <iconWrapper>
5
- <icon name="play" :size="playIconSize" :color="playIconColor" />
6
- </iconWrapper>
7
- </wrapper>
8
- </template>
9
-
10
- <script>
11
- // import VideoThumbnail from "@eturnity/eturnity_reusable_components/src/components/videoThumbnail"
12
- // How to use:
13
- //<videoThumbnail src="https://musicart.xboxlive.com/6/cfaf1e9d-0000-0000-0000-000000000009/504/image.jpg?w=1920&h=1080"
14
- // playIconColor="red"
15
- // playIconSize="20px"
16
- // width="400px"
17
- // height="600px"
18
- // />
19
-
20
- import styled from 'vue3-styled-components'
21
- import Icon from '../icon'
22
-
23
- const wrapperAttrs = { width: String, height: String, fit: String }
24
- const Wrapper = styled('div', wrapperAttrs)`
25
- display: inline-block;
26
- position: relative;
27
- width: ${(props) => props.width};
28
- height: ${(props) => props.height};
29
- & img {
30
- object-fit: ${(props) => props.fit};
31
- width: ${(props) => props.width};
32
- height: ${(props) => props.height};
33
- }
34
- `
35
- const iconWrapper = styled('div')`
36
- position: absolute;
37
- top: 0;
38
- bottom: 0;
39
- left: 0;
40
- right: 0;
41
- display: flex;
42
- justify-content: center;
43
- align-items: center;
44
- `
2
+ <wrapper :width="width" :height="height" :fit="fit">
3
+ <img :src="src">
4
+ <iconWrapper>
5
+ <icon
6
+ name="play"
7
+ :size="playIconSize"
8
+ :color="playIconColor"
9
+ />
10
+ </iconWrapper>
11
+ </wrapper>
12
+ </template>
13
+
14
+ <script>
15
+ // import VideoThumbnail from "@eturnity/eturnity_reusable_components/src/components/videoThumbnail"
16
+ // How to use:
17
+ //<videoThumbnail src="https://musicart.xboxlive.com/6/cfaf1e9d-0000-0000-0000-000000000009/504/image.jpg?w=1920&h=1080"
18
+ // playIconColor="red"
19
+ // playIconSize="20px"
20
+ // width="400px"
21
+ // height="600px"
22
+ // />
23
+
24
+ import styled from 'vue-styled-components'
25
+ import Icon from '../icon'
26
+
27
+ const wrapperAttrs = { width: String, height:String,fit:String }
28
+ const Wrapper = styled('div', wrapperAttrs)`
29
+ display: inline-block;
30
+ position: relative;
31
+ width:${props=>props.width};
32
+ height:${props=>props.height};
33
+ & img{
34
+ object-fit:${props=>props.fit};
35
+ width:${props=>props.width};
36
+ height:${props=>props.height};
37
+ }
38
+ `
39
+ const iconWrapper = styled('div')`
40
+ position: absolute;
41
+ top:0;
42
+ bottom:0;
43
+ left:0;
44
+ right:0;
45
+ display:flex;
46
+ justify-content:center;
47
+ align-items: center;
48
+ `
45
49
 
46
- export default {
47
- name: 'VideoThumbnail',
48
- components: {
49
- Wrapper,
50
- Icon,
51
- iconWrapper
52
- },
53
- props: {
54
- src: {
55
- required: true
50
+ export default {
51
+ name: 'VideoThumbnail',
52
+ components: {
53
+ Wrapper,
54
+ Icon,
55
+ iconWrapper
56
56
  },
57
- fit: {
58
- required: false,
59
- default: 'cover'
57
+ props: {
58
+ src:{
59
+ required: true,
60
+ },
61
+ fit:{
62
+ required: false,
63
+ default: 'cover'
64
+ },
65
+ width: {
66
+ required: false,
67
+ default: '300px'
68
+ },
69
+ height: {
70
+ required: false,
71
+ default: '200px'
72
+ },
73
+ playIconSize:{
74
+ required: false,
75
+ default: '50px'
76
+ },
77
+ playIconColor:{
78
+ required: false,
79
+ default: 'blue'
80
+ }
60
81
  },
61
- width: {
62
- required: false,
63
- default: '300px'
82
+ data() {
83
+ return {
84
+ isOpenByClick:false
85
+ }
64
86
  },
65
- height: {
66
- required: false,
67
- default: '200px'
87
+ methods:{
88
+ clickOutside(event) {
89
+ if (this.openingMode!="click") return
90
+ if (
91
+ this.$refs.dropdown.$el == event.target ||
92
+ this.$refs.dropdown.$el.contains(event.target)
93
+ ) {
94
+ return
95
+ } else {
96
+ this.isOpenByClick=false
97
+ }
98
+ },
68
99
  },
69
- playIconSize: {
70
- required: false,
71
- default: '50px'
100
+ mounted() {
101
+ document.addEventListener('click', this.clickOutside)
102
+ },
103
+ beforeDestroy() {
104
+ document.removeEventListener('click', this.clickOutside)
72
105
  },
73
- playIconColor: {
74
- required: false,
75
- default: 'blue'
76
- }
77
- },
78
- data() {
79
- return {
80
- isOpenByClick: false
81
- }
82
- },
83
- methods: {
84
- clickOutside(event) {
85
- if (this.openingMode != 'click') return
86
- if (
87
- this.$refs.dropdown.$el == event.target ||
88
- this.$refs.dropdown.$el.contains(event.target)
89
- ) {
90
- return
91
- } else {
92
- this.isOpenByClick = false
93
- }
94
- }
95
- },
96
- mounted() {
97
- document.addEventListener('click', this.clickOutside)
98
- },
99
- beforeDestroy() {
100
- document.removeEventListener('click', this.clickOutside)
101
106
  }
102
- }
103
- </script>
107
+ </script>
108
+
package/src/main.js CHANGED
@@ -1,6 +1,13 @@
1
- import App from './App.vue'
2
- import { createApp } from 'vue'
1
+ import Vue from "vue"
2
+ import App from "./App.vue"
3
+ import VueCompositionAPI from "@vue/composition-api"
4
+ import vClickOutside from 'v-click-outside'
3
5
 
4
- const app = createApp(App)
6
+ Vue.config.productionTip = false
5
7
 
6
- app.mount('#app')
8
+ Vue.use(VueCompositionAPI)
9
+ Vue.use(vClickOutside)
10
+
11
+ new Vue({
12
+ render: (h) => h(App),
13
+ }).$mount("#app")