@eturnity/eturnity_reusable_components 7.8.6-EPDM-7951.0 → 7.10.0-EPDM-10163.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 (52) 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/assets/svgIcons/expand.svg +1 -0
  5. package/src/assets/svgIcons/split.svg +45 -0
  6. package/src/assets/theme.js +2 -0
  7. package/src/components/addNewButton/index.vue +3 -5
  8. package/src/components/buttons/buttonIcon/index.vue +1 -1
  9. package/src/components/buttons/closeButton/index.vue +1 -1
  10. package/src/components/buttons/mainButton/index.vue +1 -6
  11. package/src/components/deleteIcon/DeleteIcon.stories.js +7 -7
  12. package/src/components/deleteIcon/index.vue +21 -25
  13. package/src/components/draggableInputHandle/index.vue +25 -24
  14. package/src/components/dropdown/index.vue +110 -129
  15. package/src/components/errorMessage/index.vue +1 -1
  16. package/src/components/filter/filterSettings.vue +97 -55
  17. package/src/components/filter/index.vue +3 -3
  18. package/src/components/filter/parentDropdown.vue +2 -2
  19. package/src/components/icon/iconCollection.vue +2 -2
  20. package/src/components/icon/index.vue +55 -57
  21. package/src/components/iconWrapper/index.vue +5 -2
  22. package/src/components/infoCard/index.vue +3 -2
  23. package/src/components/infoText/index.vue +6 -2
  24. package/src/components/inputs/checkbox/index.vue +6 -21
  25. package/src/components/inputs/inputNumber/index.vue +12 -8
  26. package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
  27. package/src/components/inputs/inputText/index.vue +8 -3
  28. package/src/components/inputs/radioButton/index.vue +1 -1
  29. package/src/components/inputs/searchInput/index.vue +8 -7
  30. package/src/components/inputs/select/index.vue +72 -213
  31. package/src/components/inputs/select/option/index.vue +5 -5
  32. package/src/components/inputs/slider/index.vue +16 -16
  33. package/src/components/inputs/switchField/index.vue +2 -2
  34. package/src/components/inputs/textAreaInput/index.vue +1 -1
  35. package/src/components/inputs/toggle/index.vue +2 -2
  36. package/src/components/label/index.vue +32 -27
  37. package/src/components/modals/modal/index.vue +8 -13
  38. package/src/components/navigationTabs/index.vue +30 -37
  39. package/src/components/pageSubtitle/index.vue +1 -1
  40. package/src/components/pageTitle/index.vue +19 -20
  41. package/src/components/pagination/index.vue +1 -1
  42. package/src/components/progressBar/index.vue +1 -1
  43. package/src/components/projectMarker/index.vue +7 -10
  44. package/src/components/sideMenu/index.vue +1 -1
  45. package/src/components/spinner/index.vue +11 -6
  46. package/src/components/tableDropdown/index.vue +26 -21
  47. package/src/components/tables/mainTable/exampleNested.vue +1 -1
  48. package/src/components/tables/mainTable/index.vue +1 -2
  49. package/src/components/tables/viewTable/index.vue +2 -2
  50. package/src/components/threeDots/index.vue +1 -1
  51. package/src/components/videoThumbnail/index.vue +100 -95
  52. package/src/main.js +11 -4
@@ -1,4 +1,4 @@
1
- import { ThemeProvider } from "vue3-styled-components"
1
+ import { ThemeProvider } from "vue-styled-components"
2
2
 
3
3
  const theme = {
4
4
  colors: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "7.8.6-EPDM-7951.0",
3
+ "version": "7.10.0-EPDM-10163.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
@@ -10,25 +10,30 @@
10
10
  "build-storybook": "build-storybook"
11
11
  },
12
12
  "dependencies": {
13
- "@storybook/vue3": "7.0.18",
14
- "@vue/compat": "3.3.4",
15
- "@vueform/slider": "2.1.10",
16
- "@vuepic/vue-datepicker": "6.1.0",
17
- "click-outside-vue3": "4.0.1",
13
+ "@vueform/slider": "1.0.5",
18
14
  "html-loader": "0.5.5",
19
- "postcss": "8.4.25",
20
- "vue": "3.3.4",
21
- "vue3-styled-components": "1.2.1"
15
+ "postcss": "^8.4.25",
16
+ "v-click-outside": "2.1.4",
17
+ "vue": "2.6.11",
18
+ "vue-styled-components": "1.6.0",
19
+ "vue2-datepicker": "3.11.1",
20
+ "vuedraggable": "2.24.3",
21
+ "core-js": "3.31.1"
22
22
  },
23
23
  "devDependencies": {
24
- "@babel/core": "7.12.16",
25
- "@babel/eslint-parser": "7.12.16",
26
- "@vue/cli-plugin-babel": "5.0.8",
27
- "@vue/cli-plugin-eslint": "5.0.8",
28
- "@vue/cli-service": "5.0.8",
29
- "@vue/compiler-sfc": "3.3.4",
30
- "eslint": "7.32.0",
31
- "eslint-plugin-vue": "8.0.3"
24
+ "@storybook/addon-actions": "6.2.8",
25
+ "@storybook/addon-docs": "6.4.19",
26
+ "@storybook/addon-essentials": "6.2.8",
27
+ "@storybook/addon-links": "6.2.8",
28
+ "@storybook/vue": "6.4.19",
29
+ "@vue/cli-plugin-babel": "~4.5.0",
30
+ "@vue/cli-plugin-eslint": "~4.5.0",
31
+ "@vue/cli-service": "~4.5.0",
32
+ "@vue/composition-api": "1.0.0-rc.10",
33
+ "babel-eslint": "10.1.0",
34
+ "eslint": "6.7.2",
35
+ "eslint-plugin-vue": "6.2.2",
36
+ "vue-template-compiler": "2.6.11"
32
37
  },
33
38
  "eslintConfig": {
34
39
  "root": true,
@@ -40,7 +45,7 @@
40
45
  "eslint:recommended"
41
46
  ],
42
47
  "parserOptions": {
43
- "parser": "@babel/eslint-parser"
48
+ "parser": "babel-eslint"
44
49
  },
45
50
  "rules": {}
46
51
  },
package/src/App.vue CHANGED
@@ -100,9 +100,9 @@
100
100
  </template>
101
101
 
102
102
  <script>
103
- import { ThemeProvider } from 'vue3-styled-components'
103
+ import { ThemeProvider } from 'vue-styled-components'
104
104
  import theme from './assets/theme'
105
- import styled from 'vue3-styled-components'
105
+ import styled from 'vue-styled-components'
106
106
  import InputNumber from '@/components/inputs/inputNumber'
107
107
  import Select from '@/components/inputs/select'
108
108
  import SwitchField from '@/components/inputs/switchField'
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M245.7,232.4c1,7.7-2.4,11.3-10.3,10.8l-62.1-6.9c-4.9-0.5-8-1.9-9.3-4.1c-1.3-2.2-0.6-4.7,2.3-7.5c1.9-1.6,4.1-3.9,6.8-6.8c2.7-2.9,5-5.2,6.8-7c1.9-2,2.4-3.8,1.8-5.4c-0.7-1.6-2-3.5-4-5.7c-4.7-4.4-9-8.5-12.9-12.1c-3.9-3.6-8.2-7.8-12.9-12.6c-1-1-2-2-3-3.2c-1-1.2-1.8-2.4-2.3-3.8c-0.5-1.4-0.6-2.9-0.2-4.4c0.3-1.6,1.4-3.3,3.3-5.1c1-1,1.9-1.9,2.5-2.6c0.7-0.7,1.3-1.4,2-2c0.7-0.6,1.4-1.2,2.1-2c0.7-0.7,1.7-1.8,2.9-3.1c3.4-3.3,6.5-4.7,9.3-4.2c2.9,0.5,6,2.4,9.3,5.7c3.4,3.3,6.8,6.6,10.3,10c3.5,3.4,7.5,7.2,11.8,11.5c3.2,3,5.9,5,8.2,6.2c2.3,1.2,4.5,0.6,6.7-1.5c1.5-1.5,3.4-3.3,5.7-5.3c2.3-2,4.2-3.9,5.9-5.5c2.9-2.8,5.4-3.9,7.7-3.2c2.3,0.7,3.7,3.1,4.2,7.4L245.7,232.4L245.7,232.4L245.7,232.4z M11.1,24c-0.5-4.3,0-7.2,1.6-8.9c1.6-1.6,4.4-2.3,8.5-2L83.2,20c5.1,0.5,8.2,1.9,9.5,4.1c1.3,2.2,0.5,4.7-2.4,7.5c-1.7,1.6-3.7,3.8-6.2,6.4c-2.4,2.6-4.6,4.8-6.4,6.6c-2,2-2.7,3.8-2,5.4c0.7,1.6,2.1,3.5,4.3,5.7c2.2,2.3,4.2,4.3,6.2,6c1.9,1.7,3.8,3.4,5.7,5.2c1.9,1.7,3.8,3.6,5.8,5.5l6.3,6.2c1,1,2,2.1,2.9,3.4c0.9,1.3,1.6,2.7,2,4.2c0.4,1.5,0.4,3-0.1,4.7c-0.5,1.6-1.6,3.3-3.3,4.9l-2.8,2.7c-0.7,0.7-1.3,1.3-1.9,2c-0.6,0.7-1.3,1.3-2.1,2l-2.8,3c-3.4,3.3-6.3,4.5-8.7,3.7c-2.4-0.8-5.3-2.9-8.7-6.2c-3.4-3.3-6.5-6.4-9.6-9.2c-3-2.9-6.7-6.5-11.1-10.7c-3-3-5.7-5-8.1-6.2c-2.4-1.2-4.6-0.7-6.8,1.5c-1.5,1.6-3.6,3.7-6.3,6c-2.7,2.4-4.9,4.4-6.5,6c-2.9,2.8-5.4,3.9-7.6,3.2c-2.2-0.7-3.5-3.1-4-7.4L11.1,24L11.1,24L11.1,24z M234.8,12.9c4.4-0.5,7.4,0,9.1,1.6c1.7,1.6,2.4,4.4,2,8.5l-7.1,60.6c-0.5,4.8-1.9,7.8-4.2,9.1c-2.3,1.3-4.8,0.5-7.7-2.5c-1.7-1.6-3.9-3.7-6.5-6c-2.7-2.4-5-4.5-6.8-6.3c-2-1.8-3.9-2.4-5.5-1.9c-1.7,0.6-3.6,1.9-5.8,4.1c-4.5,4.4-8.5,8.5-12,12.1c-3.4,3.6-7.5,7.7-12.2,12.3c-1,1-2.2,1.9-3.5,2.8c-1.3,0.9-2.8,1.6-4.3,2c-1.5,0.4-3.1,0.4-4.8-0.1s-3.4-1.6-5-3.4c-1-1-1.9-1.8-2.6-2.5s-1.5-1.3-2.1-2c-0.7-0.7-1.4-1.3-2.1-2c-0.7-0.6-1.7-1.6-2.9-3c-3.4-3.3-4.7-6.2-4-8.6c0.7-2.5,2.8-5.3,6.3-8.6l9.6-9.8c3.2-3.3,7-7.1,11.3-11.3c3.2-3,5.4-5.6,6.6-7.9c1.2-2.3,0.6-4.4-1.8-6.4c-1.5-1.5-3.4-3.5-5.8-6c-2.4-2.6-4.4-4.6-6-6.3c-2.9-2.8-3.9-5.2-3.3-7.4c0.7-2.1,3.2-3.4,7.6-3.9L234.8,12.9L234.8,12.9L234.8,12.9z M21.2,241.7c-4.2,0.3-7.2-0.3-9-1.9c-1.8-1.6-2.5-4.3-2.1-8.3l7.1-60.6c0.5-4.9,1.9-8,4.2-9.2c2.3-1.2,4.8-0.5,7.7,2.3c1.7,1.6,4,3.8,6.9,6.4c2.9,2.6,5.3,4.8,7.2,6.6c2,2,3.7,2.8,5,2.6c1.3-0.2,3-1.4,5-3.6c2.2-2.1,4.3-4.2,6.3-6.3c2-2,4-4.1,6-6c2-2,4.1-4,6.2-6.2c2.1-2.1,4.3-4.4,6.7-6.6c1-1,2.1-2,3.3-3c1.2-1,2.5-1.7,3.9-2.2s2.9-0.5,4.5-0.1c1.6,0.4,3.3,1.5,5.2,3.3c1,1,1.9,1.8,2.6,2.5c0.7,0.7,1.5,1.3,2.1,2l2,2.2l3,2.7c3.4,3.3,4.8,6.3,4.4,9c-0.4,2.7-2.4,5.8-5.9,9.2c-3.2,3.1-6.5,6.5-10.1,10c-3.5,3.5-7.5,7.4-11.8,11.7c-3,3-4.9,5.4-5.7,7.3c-0.7,1.9,0,3.9,2.1,6c1.7,1.5,3.6,3.3,5.7,5.5c2.1,2.2,4,4.1,5.7,5.8c2.9,2.8,3.9,5.2,3.2,7.4c-0.7,2.1-3.3,3.4-7.7,3.9L21.2,241.7L21.2,241.7L21.2,241.7z" style="stroke-dasharray: 1461, 1461;stroke-dashoffset: 0;fill-opacity: 1;"></path></svg>
@@ -0,0 +1,45 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ version="1.1"
5
+ id="svg854"
6
+ width="838"
7
+ height="833"
8
+ viewBox="0 0 838 833"
9
+ sodipodi:docname="split.svg"
10
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ xmlns:svg="http://www.w3.org/2000/svg">
15
+ <defs
16
+ id="defs858" />
17
+ <sodipodi:namedview
18
+ id="namedview856"
19
+ pagecolor="#ffffff"
20
+ bordercolor="#666666"
21
+ borderopacity="1.0"
22
+ inkscape:pageshadow="2"
23
+ inkscape:pageopacity="0.0"
24
+ inkscape:pagecheckerboard="0"
25
+ showgrid="false"
26
+ inkscape:zoom="0.95078031"
27
+ inkscape:cx="431.22475"
28
+ inkscape:cy="326.04798"
29
+ inkscape:window-width="1920"
30
+ inkscape:window-height="1007"
31
+ inkscape:window-x="1"
32
+ inkscape:window-y="1080"
33
+ inkscape:window-maximized="1"
34
+ inkscape:current-layer="g860" />
35
+ <g
36
+ inkscape:groupmode="layer"
37
+ inkscape:label="Image"
38
+ id="g860">
39
+ <path
40
+ style="fill:#ffffff"
41
+ d="m -5.0875843,441.73292 3.3936693,-93.74987 847.237645,-2.85667 -3.71049,95.94711 z m 333.6519143,232.4369 -98.27777,-105.35245 43.34233,-0.60608 c 23.83828,-0.33335 56.95483,-0.67085 73.59233,-0.75 l 30.25,-0.14392 L 376,413.05958 374.48738,213.61969 301.67731,213.3632 228.86724,213.10671 326.58798,107.77384 C 380.33439,49.84076 424.5019,2.3657611 424.73801,2.2738411 425.25724,2.0716911 628.96623,212.59506 628.96623,213.35636 c 0,0.29424 -41.55385,0.25035 -81.97885,0.25035 h -73.5 L 475,413.0466 l 1.47122,154.25779 72.81196,0.25649 72.81196,0.25649 -91.89971,99.5 -103.35334,112.2049 z"
42
+ id="path980"
43
+ sodipodi:nodetypes="cccccccsscccccsssscccccccc" />
44
+ </g>
45
+ </svg>
@@ -22,6 +22,8 @@ const theme = {
22
22
  grey6: '#555d61',
23
23
  green: '#99db0c',
24
24
  transparentWhite1: '#ffffff32',
25
+ transparentWhite2: '#ffffff16',
26
+ transparentWhite3: '#ffffff48',
25
27
  transparentBlack1: '#263238e6',
26
28
  disabled: '#dfe1e1',
27
29
  eturnityGrey: '#263238'
@@ -1,15 +1,14 @@
1
1
  <template>
2
2
  <page-container :shouldPosition="shouldPosition">
3
3
  <button-container :data-id="dataId">
4
- <PlusButtonSvg />
4
+ <plus-button :src="require('../../assets/icons/plus_button.svg')" />
5
5
  </button-container>
6
6
  </page-container>
7
7
  </template>
8
8
 
9
9
  <script>
10
10
  // import AddNewButton from "@eturnity/eturnity_reusable_components/src/components/addNewButton"
11
- import styled from 'vue3-styled-components'
12
- import PlusButtonSvg from '../../assets/icons/plus_button.svg'
11
+ import styled from 'vue-styled-components'
13
12
 
14
13
  const pageAttrs = { shouldPosition: Boolean }
15
14
  const PageContainer = styled('div', pageAttrs)`
@@ -47,8 +46,7 @@ export default {
47
46
  components: {
48
47
  PageContainer,
49
48
  ButtonContainer,
50
- PlusButton,
51
- PlusButtonSvg
49
+ PlusButton
52
50
  },
53
51
  props: {
54
52
  shouldPosition: {
@@ -32,7 +32,7 @@
32
32
  // />
33
33
 
34
34
  import Icon from "../../icon"
35
- import styled from "vue3-styled-components"
35
+ import styled from "vue-styled-components"
36
36
  import Theme from "@/assets/theme";
37
37
 
38
38
  const PageContainer = styled.div``
@@ -13,7 +13,7 @@
13
13
  // <close-button
14
14
  // color="#fff"
15
15
  // />
16
- import styled from 'vue3-styled-components'
16
+ import styled from 'vue-styled-components'
17
17
 
18
18
  const Container = styled.div`
19
19
  position: relative;
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <page-container>
3
3
  <button-container
4
- :id="id"
5
4
  :type="type"
6
5
  :minWidth="minWidth"
7
6
  :isDisabled="isDisabled"
@@ -26,7 +25,7 @@
26
25
  // :data-id="test_data_id"
27
26
  // />
28
27
 
29
- import styled from 'vue3-styled-components'
28
+ import styled from 'vue-styled-components'
30
29
 
31
30
  const PageContainer = styled.div``
32
31
 
@@ -99,10 +98,6 @@ export default {
99
98
  required: false,
100
99
  default: null
101
100
  },
102
- id: {
103
- required: false,
104
- default: null
105
- },
106
101
  dataId: {
107
102
  type: String,
108
103
  default: ''
@@ -1,8 +1,8 @@
1
- import DeleteIcon from './index.vue'
1
+ import DeleteIcon from "./index.vue"
2
2
 
3
3
  export default {
4
- title: 'DeleteIcon',
5
- component: DeleteIcon
4
+ title: "DeleteIcon",
5
+ component: DeleteIcon,
6
6
  // argTypes: {},
7
7
  }
8
8
 
@@ -11,19 +11,19 @@ const Template = (args, { argTypes }) => ({
11
11
  components: { DeleteIcon },
12
12
  // The story's `args` need to be mapped into the template through the `setup()` method
13
13
  props: Object.keys(argTypes),
14
- template: '<delete-icon v-bind="$props" />'
14
+ template: '<delete-icon v-bind="$props" />',
15
15
 
16
16
  // import DeleteIcon from "@eturnity/eturnity_reusable_components/src/components/deleteIcon"
17
17
  // To use:
18
- // <delete-icon color="gray" @click="onDeleteItem(item)" :isDisabled="true" />
18
+ // <delete-icon color="gray" @click.native="onDeleteItem(item)" :isDisabled="true" />
19
19
  })
20
20
 
21
21
  export const Default = Template.bind({})
22
22
  Default.args = {
23
- isDisabled: false
23
+ isDisabled: false,
24
24
  }
25
25
 
26
26
  export const Disabled = Template.bind({})
27
27
  Disabled.args = {
28
- isDisabled: true
28
+ isDisabled: true,
29
29
  }
@@ -4,62 +4,58 @@
4
4
  @mouseleave="isHovered = false"
5
5
  :isDisabled="isDisabled"
6
6
  >
7
- <delete-icon-red v-if="isHovered && !isDisabled" :hoverBg="hoverBg" />
8
- <delete-icon-gray v-else />
7
+ <icon-image
8
+ v-if="isHovered && !isDisabled"
9
+ :hoverBg="hoverBg"
10
+ :src="require('../../assets/icons/delete_icon.svg')"
11
+ />
12
+ <icon-image
13
+ v-else
14
+ :src="require('../../assets/icons/delete_icon_gray.svg')"
15
+ />
9
16
  </wrapper>
10
17
  </template>
11
18
 
12
19
  <script>
13
20
  // To use:
14
- // <delete-icon @click="onDeleteItem(item)" :isDisabled="true" />
15
- import styled from 'vue3-styled-components'
16
- import SvgDelete from '../../assets/icons/delete_icon.svg'
17
- import SvgDeleteGray from '../../assets/icons/delete_icon_gray.svg'
21
+ // <delete-icon @click.native="onDeleteItem(item)" :isDisabled="true" />
22
+ import styled from "vue-styled-components"
18
23
 
19
24
  const wrapperAttrs = { isDisabled: Boolean }
20
- const Wrapper = styled('div', wrapperAttrs)`
25
+ const Wrapper = styled("div", wrapperAttrs)`
21
26
  width: 30px;
22
27
  height: 30px;
23
- cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};
28
+ cursor: ${(props) => (props.isDisabled ? "not-allowed" : "pointer")};
24
29
  `
25
30
 
26
31
  const IconImageAttrs = { hoverBg: String }
27
- const DeleteIconRed = styled(SvgDelete, IconImageAttrs)`
32
+ const IconImage = styled('img', IconImageAttrs)`
28
33
  &:hover {
29
- background-color: ${(props) =>
30
- props.hoverBg ? props.hoverBg : props.theme.colors.grey5};
31
- border-radius: 4px;
32
- }
33
- `
34
-
35
- const DeleteIconGray = styled(SvgDeleteGray, IconImageAttrs)`
36
- &:hover {
37
- background-color: ${(props) => props.theme.colors.grey5};
34
+ background-color: ${(props) => props.hoverBg ? props.hoverBg : props.theme.colors.grey5};
38
35
  border-radius: 4px;
39
36
  }
40
37
  `
41
38
 
42
39
  export default {
43
- name: 'delete-icon',
40
+ name: "delete-icon",
44
41
  components: {
45
42
  Wrapper,
46
- DeleteIconRed,
47
- DeleteIconGray
43
+ IconImage,
48
44
  },
49
45
  props: {
50
46
  isDisabled: {
51
47
  required: false,
52
- default: false
48
+ default: false,
53
49
  },
54
50
  hoverBg: {
55
51
  required: false,
56
- default: ''
52
+ default: '',
57
53
  }
58
54
  },
59
55
  data() {
60
56
  return {
61
- isHovered: false
57
+ isHovered: false,
62
58
  }
63
- }
59
+ },
64
60
  }
65
61
  </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <Handle :height="height" class="handle">
2
+ <Handle :height = "height" class="handle">
3
3
  <Dot></Dot>
4
4
  <Dot></Dot>
5
5
  <Dot></Dot>
@@ -7,34 +7,35 @@
7
7
  </template>
8
8
 
9
9
  <script>
10
- import styled from 'vue3-styled-components'
11
10
 
12
- const Handle = styled('div', { height: String })`
13
- position: absolute;
14
- left: 0;
15
- margin-right: 10px;
16
- display: flex;
17
- align-items: stretch;
18
- flex-direction: column;
19
- justify-content: center;
20
- width: 14px;
21
- height: ${(props) => props.height};
22
- padding: 0 5px;
23
- background-color: #f3f3f7;
24
- cursor: pointer;
25
- align-items: center;
26
- `
11
+ import styled from 'vue-styled-components'
12
+
13
+ const Handle = styled('div',{ height : String })`
14
+ position:absolute;
15
+ left:0;
16
+ margin-right:10px;
17
+ display: flex;
18
+ align-items: stretch;
19
+ flex-direction: column;
20
+ justify-content: center;
21
+ width: 14px;
22
+ height:${props=> props.height};
23
+ padding: 0 5px;
24
+ background-color: #f3f3f7;
25
+ cursor: pointer;
26
+ align-items: center;
27
+ `
27
28
  const Dot = styled.div`
28
- display: inline-block;
29
- width: 4px;
30
- height: 4px;
31
- margin: 2px;
32
- background-color: #0068de;
33
- `
29
+ display: inline-block;
30
+ width: 4px;
31
+ height: 4px;
32
+ margin:2px;
33
+ background-color: #0068de;
34
+ `
34
35
 
35
36
  export default {
36
37
  name: 'draggableInputHandle',
37
- props: ['height'],
38
+ props:['height'],
38
39
  components: {
39
40
  Handle,
40
41
  Dot
@@ -1,138 +1,119 @@
1
1
  <template>
2
- <wrapper ref="dropdown" :openingMode="openingMode">
3
- <WrapperButton @click="isOpenByClick = !isOpenByClick">
4
- <slot name="trigger" />
5
- </WrapperButton>
6
- <WrapperDropdown
7
- class="dropdown-content"
8
- :class="{ openDropdown: isOpenByClick && openingMode == 'click' }"
9
- :justify="justify"
10
- :position="position"
11
- :width="width"
12
- :backgroundColor="backgroundColor"
13
- >
14
- <DropdownWindow
15
- :gap="gap"
16
- :backgroundColor="backgroundColor"
17
- :width="width"
18
- >
19
- <slot name="dropdown" />
20
- </DropdownWindow>
21
- </WrapperDropdown>
22
- </wrapper>
23
- </template>
2
+ <wrapper ref="dropdown" :openingMode="openingMode">
3
+ <WrapperButton @click="isOpenByClick=!isOpenByClick">
4
+ <slot name="trigger"/>
5
+ </WrapperButton>
6
+ <WrapperDropdown class="dropdown-content" :class="{openDropdown:isOpenByClick && openingMode=='click'}" :justify="justify" :position="position" :width="width" :backgroundColor="backgroundColor">
7
+ <DropdownWindow :gap="gap" :backgroundColor="backgroundColor" :width="width">
8
+ <slot name="dropdown"/>
9
+ </DropdownWindow>
10
+ </WrapperDropdown>
11
+ </wrapper>
12
+ </template>
13
+
14
+ <script>
15
+ // import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
16
+ // How to use:
17
+ //<DropdownComponent
18
+ // width="300px"
19
+ // backgroundColor="red">
24
20
 
25
- <script>
26
- // import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
27
- // How to use:
28
- //<DropdownComponent
29
- // width="300px"
30
- // backgroundColor="red">
21
+ // <DropdownComponent/>
22
+
23
+ import styled from 'vue-styled-components'
24
+
25
+ const wrapperAttrs = { width: String, backgroundColor:String,openingMode:String,gap:String,justify:String }
26
+ const Wrapper = styled('div', wrapperAttrs)`
27
+ display: inline-block;
28
+ position: relative;
31
29
 
32
- // <DropdownComponent/>
33
-
34
- import styled from 'vue3-styled-components'
35
-
36
- const wrapperAttrs = {
37
- width: String,
38
- backgroundColor: String,
39
- openingMode: String,
40
- gap: String,
41
- justify: String
42
- }
43
- const Wrapper = styled('div', wrapperAttrs)`
44
- display: inline-block;
45
- position: relative;
46
-
47
- &:hover .dropdown-content {
48
- ${(props) => (props.openingMode == 'hover' ? 'display:block' : '')}
49
- }
50
- & .openDropdown {
51
- ${(props) =>
52
- props.openingMode == 'click' ? 'display:block !important' : ''}
53
- }
54
- `
55
- const WrapperDropdown = styled('div', wrapperAttrs)`
56
- margin-top: 0;
57
- display: none;
58
- position: absolute;
59
- z-index: 1;
60
- ${(props) => (props.justify == 'right' ? 'right:0;' : '')}
61
- `
62
- const DropdownWindow = styled('div', wrapperAttrs)`
63
- width: ${(props) => props.width};
64
- background-color: ${(props) =>
65
- props.theme.colors[props.backgroundColor] || props.backgroundColor};
66
- margin-top: ${(props) => props.gap};
67
- border-radius: 4px;
68
- position: relative;
69
- min-width: 160px;
70
- box-shadow: -1px 0px 5px rgba(0, 0, 0, 0.302);
71
- z-index: 1;
72
- `
73
-
74
- const WrapperButton = styled('div', wrapperAttrs)`
75
- display: inline-block;
76
- `
77
-
78
- export default {
79
- name: 'DropdownComponent',
80
- components: {
81
- WrapperDropdown,
82
- WrapperButton,
83
- Wrapper,
84
- DropdownWindow
85
- },
86
- props: {
87
- width: {
88
- required: false,
89
- default: '300px'
30
+ &:hover .dropdown-content {
31
+ ${props=>props.openingMode=='hover'?"display:block":""}
32
+ }
33
+ & .openDropdown{
34
+ ${props=>props.openingMode=='click'?"display:block !important":""}
35
+ }
36
+ `
37
+ const WrapperDropdown = styled('div', wrapperAttrs)`
38
+ margin-top: 0;
39
+ display: none;
40
+ position: absolute;
41
+ z-index: 1;
42
+ ${(props) => props.justify=="right"?"right:0;":""}
43
+ `
44
+ const DropdownWindow = styled('div', wrapperAttrs)`
45
+ width: ${(props) => props.width};
46
+ background-color: ${(props) => props.theme.colors[props.backgroundColor] || props.backgroundColor};
47
+ margin-top: ${(props) => props.gap};
48
+ border-radius: 4px;
49
+ position: relative;
50
+ min-width: 160px;
51
+ box-shadow: -1px 0px 5px rgba(0, 0, 0, 0.302);
52
+ z-index: 1;
53
+ `
54
+
55
+ const WrapperButton = styled('div', wrapperAttrs)`
56
+ display: inline-block;
57
+ `
58
+
59
+ export default {
60
+ name: 'DropdownComponent',
61
+ components: {
62
+ WrapperDropdown,
63
+ WrapperButton,
64
+ Wrapper,
65
+ DropdownWindow
90
66
  },
91
- gap: {
92
- required: false,
93
- default: '10px'
67
+ props: {
68
+ width: {
69
+ required: false,
70
+ default: '300px'
71
+ },
72
+ gap: {
73
+ required: false,
74
+ default: '10px'
75
+ },
76
+ position: {
77
+ required: false,
78
+ default: 'bottom'
79
+ },
80
+ justify: {
81
+ required: false,
82
+ default: 'left'
83
+ },
84
+ openingMode: {
85
+ required: false,
86
+ default: 'hover'
87
+ },
88
+ backgroundColor: {
89
+ required: false,
90
+ default: 'white'
91
+ }
94
92
  },
95
- position: {
96
- required: false,
97
- default: 'bottom'
93
+ data() {
94
+ return {
95
+ isOpenByClick:false
96
+ }
98
97
  },
99
- justify: {
100
- required: false,
101
- default: 'left'
98
+ methods:{
99
+ clickOutside(event) {
100
+ if (this.openingMode!="click") return
101
+ if (
102
+ this.$refs.dropdown.$el == event.target ||
103
+ this.$refs.dropdown.$el.contains(event.target)
104
+ ) {
105
+ return
106
+ } else {
107
+ this.isOpenByClick=false
108
+ }
109
+ },
102
110
  },
103
- openingMode: {
104
- required: false,
105
- default: 'hover'
111
+ mounted() {
112
+ document.addEventListener('click', this.clickOutside)
113
+ },
114
+ beforeDestroy() {
115
+ document.removeEventListener('click', this.clickOutside)
106
116
  },
107
- backgroundColor: {
108
- required: false,
109
- default: 'white'
110
- }
111
- },
112
- data() {
113
- return {
114
- isOpenByClick: false
115
- }
116
- },
117
- methods: {
118
- clickOutside(event) {
119
- if (this.openingMode != 'click') return
120
- if (
121
- this.$refs.dropdown &&
122
- (this.$refs.dropdown.$el == event.target ||
123
- this.$refs.dropdown.$el.contains(event.target))
124
- ) {
125
- return
126
- } else {
127
- this.isOpenByClick = false
128
- }
129
- }
130
- },
131
- mounted() {
132
- document.addEventListener('click', this.clickOutside)
133
- },
134
- beforeDestroy() {
135
- document.removeEventListener('click', this.clickOutside)
136
117
  }
137
- }
138
- </script>
118
+ </script>
119
+