@eturnity/eturnity_reusable_components 7.33.6 → 7.35.1
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.
- package/package.json +40 -33
- package/src/Test.vue +10 -0
- package/src/assets/svgIcons/obstacle_tool.svg +1 -1
- package/src/components/buttons/mainButton/MainButton.stories.js +51 -0
- package/src/components/buttons/mainButton/index.vue +25 -15
- package/src/components/buttons/mainButton/mainButton.spec.js +35 -0
- package/src/components/icon/iconCollection.vue +16 -2
- package/src/components/inputs/checkbox/Checkbox.stories.js +49 -43
- package/src/components/inputs/checkbox/checkbox.spec.js +109 -0
- package/src/components/inputs/checkbox/index.vue +1 -0
- package/src/components/inputs/toggle/toggle.spec.js +2 -2
- package/src/stories/Button.stories.js +6 -6
- package/src/stories/Header.stories.js +5 -5
- package/src/stories/Page.stories.js +8 -8
- package/.eslintrc.js +0 -181
- package/.prettierrc +0 -9
- package/.storybook/main.js +0 -23
- package/.storybook/preview.js +0 -46
- package/babel.config.js +0 -18
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -986
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/coverage/src/App.vue.html +0 -175
- package/coverage/src/Test.vue.html +0 -421
- package/coverage/src/assets/index.html +0 -116
- package/coverage/src/assets/tests/helpers.js.html +0 -121
- package/coverage/src/assets/tests/index.html +0 -116
- package/coverage/src/assets/theme.js.html +0 -208
- package/coverage/src/components/addNewButton/AddNewButton.stories.js.html +0 -157
- package/coverage/src/components/addNewButton/index.html +0 -131
- package/coverage/src/components/addNewButton/index.vue.html +0 -268
- package/coverage/src/components/banner/actionBanner/index.html +0 -116
- package/coverage/src/components/banner/actionBanner/index.vue.html +0 -277
- package/coverage/src/components/banner/banner/banner.stories.js.html +0 -178
- package/coverage/src/components/banner/banner/index.html +0 -131
- package/coverage/src/components/banner/banner/index.vue.html +0 -649
- package/coverage/src/components/banner/infoBanner/index.html +0 -116
- package/coverage/src/components/banner/infoBanner/index.vue.html +0 -256
- package/coverage/src/components/buttons/buttonIcon/index.html +0 -116
- package/coverage/src/components/buttons/buttonIcon/index.vue.html +0 -520
- package/coverage/src/components/buttons/closeButton/CloseButton.stories.js.html +0 -172
- package/coverage/src/components/buttons/closeButton/index.html +0 -131
- package/coverage/src/components/buttons/closeButton/index.vue.html +0 -268
- package/coverage/src/components/buttons/mainButton/index.html +0 -116
- package/coverage/src/components/buttons/mainButton/index.vue.html +0 -505
- package/coverage/src/components/card/index.html +0 -116
- package/coverage/src/components/card/index.vue.html +0 -373
- package/coverage/src/components/collapsableInfoText/index.html +0 -116
- package/coverage/src/components/collapsableInfoText/index.vue.html +0 -466
- package/coverage/src/components/deleteIcon/DeleteIcon.stories.js.html +0 -172
- package/coverage/src/components/deleteIcon/index.html +0 -131
- package/coverage/src/components/deleteIcon/index.vue.html +0 -319
- package/coverage/src/components/draggableInputHandle/index.html +0 -116
- package/coverage/src/components/draggableInputHandle/index.vue.html +0 -223
- package/coverage/src/components/dropdown/Dropdown.stories.js.html +0 -244
- package/coverage/src/components/dropdown/index.html +0 -131
- package/coverage/src/components/dropdown/index.vue.html +0 -499
- package/coverage/src/components/errorMessage/index.html +0 -116
- package/coverage/src/components/errorMessage/index.vue.html +0 -277
- package/coverage/src/components/filter/filterSettings.vue.html +0 -2002
- package/coverage/src/components/filter/index.html +0 -146
- package/coverage/src/components/filter/index.vue.html +0 -547
- package/coverage/src/components/filter/parentDropdown.vue.html +0 -358
- package/coverage/src/components/icon/Icons.stories.js.html +0 -208
- package/coverage/src/components/icon/iconCollection.vue.html +0 -289
- package/coverage/src/components/icon/index.html +0 -146
- package/coverage/src/components/icon/index.vue.html +0 -505
- package/coverage/src/components/iconWrapper/index.html +0 -116
- package/coverage/src/components/iconWrapper/index.vue.html +0 -622
- package/coverage/src/components/infoCard/index.html +0 -116
- package/coverage/src/components/infoCard/index.vue.html +0 -205
- package/coverage/src/components/infoText/index.html +0 -116
- package/coverage/src/components/infoText/index.vue.html +0 -595
- package/coverage/src/components/inputs/checkbox/Checkbox.stories.js.html +0 -256
- package/coverage/src/components/inputs/checkbox/index.html +0 -131
- package/coverage/src/components/inputs/checkbox/index.vue.html +0 -757
- package/coverage/src/components/inputs/inputNumber/InputNumber.stories.js.html +0 -535
- package/coverage/src/components/inputs/inputNumber/index.html +0 -131
- package/coverage/src/components/inputs/inputNumber/index.vue.html +0 -2452
- package/coverage/src/components/inputs/inputNumberQuestion/index.html +0 -116
- package/coverage/src/components/inputs/inputNumberQuestion/index.vue.html +0 -739
- package/coverage/src/components/inputs/inputText/InputText.stories.js.html +0 -310
- package/coverage/src/components/inputs/inputText/index.html +0 -131
- package/coverage/src/components/inputs/inputText/index.vue.html +0 -1213
- package/coverage/src/components/inputs/radioButton/RadioButton.stories.js.html +0 -259
- package/coverage/src/components/inputs/radioButton/index.html +0 -131
- package/coverage/src/components/inputs/radioButton/index.vue.html +0 -904
- package/coverage/src/components/inputs/searchInput/SearchInput.stories.js.html +0 -205
- package/coverage/src/components/inputs/searchInput/index.html +0 -131
- package/coverage/src/components/inputs/searchInput/index.vue.html +0 -538
- package/coverage/src/components/inputs/select/index.html +0 -131
- package/coverage/src/components/inputs/select/index.vue.html +0 -2809
- package/coverage/src/components/inputs/select/option/index.html +0 -116
- package/coverage/src/components/inputs/select/option/index.vue.html +0 -529
- package/coverage/src/components/inputs/select/select.stories.js.html +0 -259
- package/coverage/src/components/inputs/slider/index.html +0 -116
- package/coverage/src/components/inputs/slider/index.vue.html +0 -463
- package/coverage/src/components/inputs/switchField/index.html +0 -116
- package/coverage/src/components/inputs/switchField/index.vue.html +0 -847
- package/coverage/src/components/inputs/textAreaInput/TextAreaInput.stories.js.html +0 -466
- package/coverage/src/components/inputs/textAreaInput/index.html +0 -131
- package/coverage/src/components/inputs/textAreaInput/index.vue.html +0 -679
- package/coverage/src/components/inputs/toggle/Toggle.stories.js.html +0 -316
- package/coverage/src/components/inputs/toggle/index.html +0 -131
- package/coverage/src/components/inputs/toggle/index.vue.html +0 -1036
- package/coverage/src/components/label/index.html +0 -116
- package/coverage/src/components/label/index.vue.html +0 -382
- package/coverage/src/components/markerItem/index.html +0 -116
- package/coverage/src/components/markerItem/index.vue.html +0 -349
- package/coverage/src/components/modals/actionModal/index.html +0 -116
- package/coverage/src/components/modals/actionModal/index.vue.html +0 -277
- package/coverage/src/components/modals/infoModal/index.html +0 -116
- package/coverage/src/components/modals/infoModal/index.vue.html +0 -241
- package/coverage/src/components/modals/modal/index.html +0 -131
- package/coverage/src/components/modals/modal/index.vue.html +0 -649
- package/coverage/src/components/modals/modal/modal.stories.js.html +0 -178
- package/coverage/src/components/navigationTabs/index.html +0 -116
- package/coverage/src/components/navigationTabs/index.vue.html +0 -427
- package/coverage/src/components/pageSubtitle/index.html +0 -116
- package/coverage/src/components/pageSubtitle/index.vue.html +0 -286
- package/coverage/src/components/pageTitle/index.html +0 -116
- package/coverage/src/components/pageTitle/index.vue.html +0 -289
- package/coverage/src/components/pagination/index.html +0 -116
- package/coverage/src/components/pagination/index.vue.html +0 -529
- package/coverage/src/components/progressBar/index.html +0 -116
- package/coverage/src/components/progressBar/index.vue.html +0 -460
- package/coverage/src/components/projectMarker/index.html +0 -116
- package/coverage/src/components/projectMarker/index.vue.html +0 -985
- package/coverage/src/components/rangeSlider/Slider.vue.html +0 -1804
- package/coverage/src/components/rangeSlider/index.html +0 -131
- package/coverage/src/components/rangeSlider/index.vue.html +0 -1636
- package/coverage/src/components/rangeSlider/utils/dom.js.html +0 -232
- package/coverage/src/components/rangeSlider/utils/fns.js.html +0 -163
- package/coverage/src/components/rangeSlider/utils/index.html +0 -131
- package/coverage/src/components/selectedOptions/index.html +0 -116
- package/coverage/src/components/selectedOptions/index.vue.html +0 -520
- package/coverage/src/components/sideMenu/index.html +0 -116
- package/coverage/src/components/sideMenu/index.vue.html +0 -895
- package/coverage/src/components/spinner/index.html +0 -116
- package/coverage/src/components/spinner/index.vue.html +0 -289
- package/coverage/src/components/tableDropdown/index.html +0 -116
- package/coverage/src/components/tableDropdown/index.vue.html +0 -1999
- package/coverage/src/components/tables/mainTable/exampleNested.vue.html +0 -1069
- package/coverage/src/components/tables/mainTable/index.html +0 -131
- package/coverage/src/components/tables/mainTable/index.vue.html +0 -1615
- package/coverage/src/components/tables/viewTable/index.html +0 -116
- package/coverage/src/components/tables/viewTable/index.vue.html +0 -670
- package/coverage/src/components/tabsHeader/index.html +0 -116
- package/coverage/src/components/tabsHeader/index.vue.html +0 -334
- package/coverage/src/components/threeDots/index.html +0 -116
- package/coverage/src/components/threeDots/index.vue.html +0 -1324
- package/coverage/src/components/videoThumbnail/index.html +0 -131
- package/coverage/src/components/videoThumbnail/index.vue.html +0 -394
- package/coverage/src/components/videoThumbnail/videoThumbnail.stories.js.html +0 -184
- package/coverage/src/helpers/currencyMapping.js.html +0 -169
- package/coverage/src/helpers/index.html +0 -146
- package/coverage/src/helpers/numberConverter.js.html +0 -394
- package/coverage/src/helpers/translateLang.js.html +0 -469
- package/coverage/src/index.html +0 -131
- package/coverage/src/mixins/index.html +0 -116
- package/coverage/src/mixins/inputValidations.js.html +0 -376
- package/coverage/src/router/dynamicRoutes.js.html +0 -154
- package/coverage/src/router/index.html +0 -116
- package/coverage/src/utils/index.html +0 -116
- package/coverage/src/utils/index.js.html +0 -121
- package/jest.config.js +0 -24
- package/postcss.config.js +0 -6
package/package.json
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"name": "@eturnity/eturnity_reusable_components",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.35.1",
|
4
|
+
"files": [
|
5
|
+
"dist",
|
6
|
+
"src"
|
7
|
+
],
|
8
|
+
"main": "./dist/main.umd.js",
|
9
|
+
"module": "./dist/main.es.js",
|
4
10
|
"private": false,
|
5
11
|
"scripts": {
|
6
|
-
"dev": "
|
7
|
-
"build": "
|
12
|
+
"dev": "vite",
|
13
|
+
"build": "vite build",
|
8
14
|
"lint": "vue-cli-service lint",
|
9
15
|
"storybook": "storybook dev -p 6006",
|
10
16
|
"build-storybook": "storybook build",
|
@@ -14,52 +20,54 @@
|
|
14
20
|
"prepublishOnly": "npm run test"
|
15
21
|
},
|
16
22
|
"dependencies": {
|
17
|
-
"@
|
23
|
+
"@originjs/vite-plugin-commonjs": "1.0.3",
|
18
24
|
"@vue/compat": "3.3.4",
|
19
25
|
"@vueform/slider": "2.1.10",
|
20
26
|
"@vuepic/vue-datepicker": "6.1.0",
|
21
27
|
"click-outside-vue3": "4.0.1",
|
22
|
-
"
|
23
|
-
"
|
28
|
+
"storybook": "8.2.9",
|
29
|
+
"vite-plugin-require": "1.1.14",
|
24
30
|
"vue": "3.3.4",
|
25
|
-
"vue-router": "
|
31
|
+
"vue-router": "4.2.2",
|
26
32
|
"vue3-styled-components": "1.2.1",
|
27
33
|
"vuedraggable": "4.1.0"
|
28
34
|
},
|
29
35
|
"devDependencies": {
|
30
|
-
"@babel/core": "
|
31
|
-
"@babel/plugin-syntax-import-meta": "
|
32
|
-
"@babel/preset-env": "
|
33
|
-
"@chromatic-com/storybook": "
|
34
|
-
"@storybook/addon-essentials": "
|
35
|
-
"@storybook/addon-interactions": "
|
36
|
-
"@storybook/addon-links": "
|
37
|
-
"@storybook/addon-onboarding": "
|
38
|
-
"@storybook/
|
39
|
-
"@storybook/
|
40
|
-
"@storybook/
|
41
|
-
"@
|
42
|
-
"@
|
43
|
-
"@
|
44
|
-
"@vue/cli-plugin-babel": "^5.0.8",
|
36
|
+
"@babel/core": "7.25.2",
|
37
|
+
"@babel/plugin-syntax-import-meta": "7.10.4",
|
38
|
+
"@babel/preset-env": "7.25.3",
|
39
|
+
"@chromatic-com/storybook": "1.6.1",
|
40
|
+
"@storybook/addon-essentials": "8.2.9",
|
41
|
+
"@storybook/addon-interactions": "8.2.9",
|
42
|
+
"@storybook/addon-links": "8.2.9",
|
43
|
+
"@storybook/addon-onboarding": "8.2.8",
|
44
|
+
"@storybook/blocks": "8.2.8",
|
45
|
+
"@storybook/test": "8.2.8",
|
46
|
+
"@storybook/vue3-vite": "8.2.9",
|
47
|
+
"@types/node": "22.1.0",
|
48
|
+
"@vitejs/plugin-vue": "4.0.0",
|
49
|
+
"@vue/cli-plugin-babel": "5.0.8",
|
45
50
|
"@vue/cli-plugin-eslint": "5.0.8",
|
46
|
-
"@vue/cli-service": "
|
51
|
+
"@vue/cli-service": "5.0.8",
|
47
52
|
"@vue/compiler-sfc": "3.3.4",
|
48
|
-
"@vue/test-utils": "
|
53
|
+
"@vue/test-utils": "2.4.6",
|
49
54
|
"babel-eslint": "10.1.0",
|
50
|
-
"babel-jest": "
|
55
|
+
"babel-jest": "26.6.3",
|
51
56
|
"eslint": "8.0.1",
|
52
57
|
"eslint-config-prettier": "8.8.0",
|
53
58
|
"eslint-plugin-prettier": "4.2.1",
|
54
|
-
"eslint-plugin-storybook": "
|
59
|
+
"eslint-plugin-storybook": "0.8.0",
|
55
60
|
"eslint-plugin-vue": "9.14.1",
|
56
|
-
"identity-obj-proxy": "
|
57
|
-
"jest": "
|
61
|
+
"identity-obj-proxy": "3.0.0",
|
62
|
+
"jest": "26.6.3",
|
63
|
+
"jest-styled-components": "7.2.0",
|
64
|
+
"jsdom": "24.1.1",
|
58
65
|
"prettier": "2.8.4",
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"vue-
|
62
|
-
"vue-
|
66
|
+
"vite": "4.0.0",
|
67
|
+
"vite-svg-loader": "5.1.0",
|
68
|
+
"vue-jest": "5.0.0-alpha.10",
|
69
|
+
"vue-loader": "17.4.2",
|
70
|
+
"vue-svg-loader": "0.16.0"
|
63
71
|
},
|
64
72
|
"browserslist": [
|
65
73
|
"> 1%",
|
@@ -67,7 +75,6 @@
|
|
67
75
|
"not dead"
|
68
76
|
],
|
69
77
|
"description": "## Project setup ``` npm install ```",
|
70
|
-
"main": "babel.config.js",
|
71
78
|
"repository": {
|
72
79
|
"type": "git",
|
73
80
|
"url": "git+https://aaronenser@bitbucket.org/eturnitydevs/eturnity_reusable_components.git"
|
package/src/Test.vue
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<PageContainer>
|
3
|
+
<IconComponent color="red" cursor="pointer" name="House" size="30px" />
|
4
|
+
<MainButton icon="bell" text="Click ME" type="secondary" />
|
3
5
|
<AddNewButton />
|
4
6
|
<ToggleComponent
|
5
7
|
:disabled="false"
|
@@ -58,6 +60,8 @@
|
|
58
60
|
|
59
61
|
<hr />
|
60
62
|
<button @click="value = 42">Click to set at 42</button>
|
63
|
+
<br />
|
64
|
+
<IconCollection />
|
61
65
|
</PageContainer>
|
62
66
|
</template>
|
63
67
|
|
@@ -65,7 +69,10 @@
|
|
65
69
|
import styled from 'vue3-styled-components'
|
66
70
|
import InputNumber from '@/components/inputs/inputNumber'
|
67
71
|
import ToggleComponent from '@/components/inputs/toggle'
|
72
|
+
import IconCollection from '@/components/icon/iconCollection'
|
68
73
|
import AddNewButton from '@/components/addNewButton'
|
74
|
+
import MainButton from '@/components/buttons/mainButton'
|
75
|
+
import IconComponent from '@/components/icon'
|
69
76
|
|
70
77
|
const PageContainer = styled.div`
|
71
78
|
padding: 40px;
|
@@ -77,7 +84,10 @@
|
|
77
84
|
PageContainer,
|
78
85
|
InputNumber,
|
79
86
|
ToggleComponent,
|
87
|
+
IconCollection,
|
80
88
|
AddNewButton,
|
89
|
+
MainButton,
|
90
|
+
IconComponent,
|
81
91
|
},
|
82
92
|
data() {
|
83
93
|
return {
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import MainButton from './index.vue'
|
2
|
+
|
3
|
+
export default {
|
4
|
+
title: 'MainButton',
|
5
|
+
component: MainButton,
|
6
|
+
tags: ['autodocs'],
|
7
|
+
}
|
8
|
+
|
9
|
+
export const DefaultButton = {
|
10
|
+
args: {
|
11
|
+
type: 'primary',
|
12
|
+
text: 'Click me',
|
13
|
+
},
|
14
|
+
}
|
15
|
+
|
16
|
+
export const SecondaryButton = {
|
17
|
+
args: {
|
18
|
+
type: 'secondary',
|
19
|
+
text: 'Click me',
|
20
|
+
},
|
21
|
+
}
|
22
|
+
|
23
|
+
export const CancelButton = {
|
24
|
+
args: {
|
25
|
+
type: 'cancel',
|
26
|
+
text: 'Click me',
|
27
|
+
},
|
28
|
+
}
|
29
|
+
|
30
|
+
export const DisabledButton = {
|
31
|
+
args: {
|
32
|
+
text: 'Click me',
|
33
|
+
isDisabled: true,
|
34
|
+
},
|
35
|
+
}
|
36
|
+
|
37
|
+
export const CustomColorButton = {
|
38
|
+
args: {
|
39
|
+
text: 'Click me',
|
40
|
+
customColor: '#0068DE',
|
41
|
+
fontColor: '#fdb813',
|
42
|
+
},
|
43
|
+
}
|
44
|
+
|
45
|
+
export const IconButton = {
|
46
|
+
args: {
|
47
|
+
text: 'Click me',
|
48
|
+
icon: 'bell',
|
49
|
+
customColor: '#fdb813',
|
50
|
+
},
|
51
|
+
}
|
@@ -10,26 +10,26 @@
|
|
10
10
|
:no-wrap="noWrap"
|
11
11
|
:type="type"
|
12
12
|
>
|
13
|
-
<
|
13
|
+
<LabelComponent :has-icon="Boolean(icon)">
|
14
14
|
<Icon v-if="icon" :name="icon" size="14px" />
|
15
15
|
{{ text }}
|
16
|
-
</
|
16
|
+
</LabelComponent>
|
17
17
|
</ButtonContainer>
|
18
18
|
</PageContainer>
|
19
19
|
</template>
|
20
20
|
|
21
21
|
<script>
|
22
|
-
// To use:
|
23
|
-
// import RCMainButton from "@eturnity/eturnity_reusable_components/src/components/buttons/mainButton"
|
24
|
-
// <RCMainButton
|
25
|
-
// text="Click Me"
|
26
|
-
// customColor="#ab5348"
|
27
|
-
// type="secondary" // primary, secondary, cancel
|
28
|
-
// icon="icon-name" // icon name from icon component
|
29
|
-
// :isDisabled="true"
|
30
|
-
// :minWidth="minWidth"
|
31
|
-
// :data-id="test_data_id"
|
32
|
-
// />
|
22
|
+
// To use:
|
23
|
+
// import RCMainButton from "@eturnity/eturnity_reusable_components/src/components/buttons/mainButton"
|
24
|
+
// <RCMainButton
|
25
|
+
// text="Click Me"
|
26
|
+
// customColor="#ab5348"
|
27
|
+
// type="secondary" // primary, secondary, cancel
|
28
|
+
// icon="icon-name" // icon name from icon component
|
29
|
+
// :isDisabled="true"
|
30
|
+
// :minWidth="minWidth"
|
31
|
+
// :data-id="test_data_id"
|
32
|
+
// />
|
33
33
|
|
34
34
|
import styled from 'vue3-styled-components'
|
35
35
|
import Icon from '../../icon'
|
@@ -81,7 +81,7 @@
|
|
81
81
|
hasIcon: Boolean,
|
82
82
|
}
|
83
83
|
|
84
|
-
const
|
84
|
+
const LabelComponent = styled('span', LabelAttrs)`
|
85
85
|
display: flex;
|
86
86
|
align-items: center;
|
87
87
|
justify-content: center;
|
@@ -92,7 +92,7 @@
|
|
92
92
|
name: 'MainButton',
|
93
93
|
components: {
|
94
94
|
Icon,
|
95
|
-
|
95
|
+
LabelComponent,
|
96
96
|
PageContainer,
|
97
97
|
ButtonContainer,
|
98
98
|
},
|
@@ -100,36 +100,46 @@
|
|
100
100
|
type: {
|
101
101
|
required: false,
|
102
102
|
default: 'primary',
|
103
|
+
type: String,
|
103
104
|
},
|
104
105
|
isDisabled: {
|
105
106
|
required: false,
|
106
107
|
default: false,
|
108
|
+
type: Boolean,
|
107
109
|
},
|
108
110
|
icon: {
|
109
111
|
required: false,
|
110
112
|
default: null,
|
113
|
+
type: String,
|
111
114
|
},
|
112
115
|
text: {
|
113
116
|
required: true,
|
117
|
+
type: String,
|
114
118
|
},
|
115
119
|
customColor: {
|
116
120
|
required: false,
|
117
121
|
default: null,
|
122
|
+
type: String,
|
118
123
|
},
|
119
124
|
fontColor: {
|
120
125
|
required: false,
|
126
|
+
default: '',
|
127
|
+
type: String,
|
121
128
|
},
|
122
129
|
noWrap: {
|
123
130
|
required: false,
|
124
131
|
default: false,
|
132
|
+
type: Boolean,
|
125
133
|
},
|
126
134
|
minWidth: {
|
127
135
|
required: false,
|
128
136
|
default: null,
|
137
|
+
type: String,
|
129
138
|
},
|
130
139
|
id: {
|
131
140
|
required: false,
|
132
141
|
default: null,
|
142
|
+
type: String,
|
133
143
|
},
|
134
144
|
dataId: {
|
135
145
|
type: String,
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
import { mount } from '@vue/test-utils'
|
3
|
+
import MainButton from '@/components/buttons/mainButton'
|
4
|
+
import theme from '@/assets/theme'
|
5
|
+
|
6
|
+
jest.mock('@/components/icon/iconCache.mjs', () => ({
|
7
|
+
// need to mock this due to how jest handles import.meta
|
8
|
+
fetchIcon: jest.fn(() => Promise.resolve('mocked-icon-url.svg')),
|
9
|
+
}))
|
10
|
+
|
11
|
+
describe('MainButton.vue', () => {
|
12
|
+
let wrapper
|
13
|
+
|
14
|
+
beforeEach(() => {
|
15
|
+
wrapper = mount(MainButton, {
|
16
|
+
props: {
|
17
|
+
type: 'primary',
|
18
|
+
text: 'Click me',
|
19
|
+
isDisabled: false,
|
20
|
+
dataId: 'button_wrapper',
|
21
|
+
},
|
22
|
+
global: {
|
23
|
+
provide: {
|
24
|
+
theme,
|
25
|
+
},
|
26
|
+
},
|
27
|
+
})
|
28
|
+
})
|
29
|
+
|
30
|
+
it('button is rendered with correct props', async () => {
|
31
|
+
await wrapper.vm.$nextTick()
|
32
|
+
const buttonWrapper = wrapper.find('[data-id="button_wrapper"]')
|
33
|
+
expect(buttonWrapper.exists()).toBe(true)
|
34
|
+
})
|
35
|
+
})
|
@@ -49,8 +49,22 @@
|
|
49
49
|
}
|
50
50
|
},
|
51
51
|
|
52
|
-
mounted() {
|
53
|
-
|
52
|
+
// mounted() {
|
53
|
+
// this.importAll(require.context('../../assets/svgIcons/', true, /\.svg$/))
|
54
|
+
// },
|
55
|
+
async mounted() {
|
56
|
+
// Use import.meta.glob to import SVGs dynamically
|
57
|
+
const icons = import.meta.glob('../../assets/svgIcons/*.svg')
|
58
|
+
|
59
|
+
for (const path in icons) {
|
60
|
+
const module = await icons[path]()
|
61
|
+
|
62
|
+
this.iconList.push({
|
63
|
+
pathLong: module.default,
|
64
|
+
pathShort: path,
|
65
|
+
name: path.replace('.svg', '').replace('../../assets/svgIcons/', ''),
|
66
|
+
})
|
67
|
+
}
|
54
68
|
},
|
55
69
|
|
56
70
|
methods: {
|
@@ -3,55 +3,61 @@ import Checkbox from './index.vue'
|
|
3
3
|
export default {
|
4
4
|
title: 'Checkbox',
|
5
5
|
component: Checkbox,
|
6
|
-
|
6
|
+
tags: ['autodocs'],
|
7
7
|
}
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
9
|
+
// <checkbox
|
10
|
+
// label="Do you accept the Terms?"
|
11
|
+
// :isChecked="isChecked" //required
|
12
|
+
// @on-event-handler="onInputChange($event)" //required
|
13
|
+
// checkColor="blue"
|
14
|
+
// size="small"
|
15
|
+
// backgroundColor="red"
|
16
|
+
// :isDisabled="true"
|
17
|
+
// cursorType="default"
|
18
|
+
// />
|
19
|
+
|
20
|
+
export const DefaultCheckbox = {
|
21
|
+
args: {
|
22
|
+
isChecked: 'false',
|
23
|
+
},
|
24
|
+
}
|
25
|
+
|
26
|
+
export const IsChecked = {
|
27
|
+
args: {
|
28
|
+
isChecked: 'true',
|
29
|
+
},
|
30
|
+
}
|
31
|
+
|
32
|
+
export const CheckboxLabel = {
|
33
|
+
args: {
|
34
|
+
isChecked: 'false',
|
35
|
+
label: 'Click me',
|
36
|
+
},
|
34
37
|
}
|
35
38
|
|
36
|
-
export const
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
export const SmallCheckbox = {
|
40
|
+
args: {
|
41
|
+
isChecked: 'false',
|
42
|
+
label: 'Click me',
|
43
|
+
size: 'small',
|
44
|
+
},
|
41
45
|
}
|
42
46
|
|
43
|
-
export const
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
export const DisabledCheckbox = {
|
48
|
+
args: {
|
49
|
+
isChecked: false,
|
50
|
+
label: 'Click me',
|
51
|
+
size: 'small',
|
52
|
+
isDisabled: 'true',
|
53
|
+
},
|
50
54
|
}
|
51
55
|
|
52
|
-
export const
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
export const CustomColor = {
|
57
|
+
args: {
|
58
|
+
isChecked: 'false',
|
59
|
+
size: 'medium',
|
60
|
+
checkColor: 'blue',
|
61
|
+
backgroundColor: 'yellow',
|
62
|
+
},
|
57
63
|
}
|
@@ -0,0 +1,109 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
import { mount } from '@vue/test-utils'
|
3
|
+
import Checkbox from '@/components/inputs/checkbox'
|
4
|
+
import theme from '@/assets/theme'
|
5
|
+
|
6
|
+
describe('Checkbox Component', () => {
|
7
|
+
let wrapper
|
8
|
+
|
9
|
+
beforeEach(() => {
|
10
|
+
wrapper = mount(Checkbox, {
|
11
|
+
props: {
|
12
|
+
isChecked: false,
|
13
|
+
label: 'Click me',
|
14
|
+
isDisabled: false,
|
15
|
+
dataId: 'checkbox_wrapper',
|
16
|
+
},
|
17
|
+
global: {
|
18
|
+
provide: {
|
19
|
+
theme,
|
20
|
+
},
|
21
|
+
},
|
22
|
+
})
|
23
|
+
})
|
24
|
+
it('checkbox is rendered and emits correct payload on change', async () => {
|
25
|
+
const checkboxWrapper = wrapper.find('[data-test-id="checkbox_wrapper"]')
|
26
|
+
|
27
|
+
// check that the element exists with correct props
|
28
|
+
expect(checkboxWrapper.exists()).toBe(true)
|
29
|
+
expect(wrapper.vm.isChecked).toBe(false)
|
30
|
+
expect(wrapper.vm.label).toBe('Click me')
|
31
|
+
expect(wrapper.vm.size).toBe('medium')
|
32
|
+
expect(wrapper.vm.isDisabled).toBe(false)
|
33
|
+
|
34
|
+
// Test the change
|
35
|
+
const inputCheckbox = checkboxWrapper.find('input[type="checkbox"]')
|
36
|
+
await inputCheckbox.trigger('change')
|
37
|
+
expect(wrapper.emitted('on-event-handler')).toBeTruthy()
|
38
|
+
const emittedEvent = wrapper.emitted('on-event-handler')
|
39
|
+
// To inspect emitted events:
|
40
|
+
expect(emittedEvent).toHaveLength(1) // Check if the event was emitted exactly once
|
41
|
+
// Check the payload of the event
|
42
|
+
expect(emittedEvent[0]).toEqual([true])
|
43
|
+
})
|
44
|
+
it('disabled should not emit anything', async () => {
|
45
|
+
const checkboxWrapper = wrapper.find('[data-test-id="checkbox_wrapper"]')
|
46
|
+
await wrapper.setProps({ isDisabled: true })
|
47
|
+
|
48
|
+
// check that the element exists with correct props
|
49
|
+
expect(checkboxWrapper.exists()).toBe(true)
|
50
|
+
expect(wrapper.vm.isDisabled).toBe(true)
|
51
|
+
|
52
|
+
// Test the change
|
53
|
+
const inputCheckbox = checkboxWrapper.find('input[type="checkbox"]')
|
54
|
+
await inputCheckbox.trigger('change')
|
55
|
+
// expect(wrapper.emitted('on-event-handler')).toBeTruthy()
|
56
|
+
const emittedEvents = wrapper.emitted('on-event-handler')
|
57
|
+
// To inspect emitted events:
|
58
|
+
expect(emittedEvents).toBeUndefined() // No event should be emitted
|
59
|
+
})
|
60
|
+
it('checkbox can handle multiple clicks', async () => {
|
61
|
+
const checkboxWrapper = wrapper.find('[data-test-id="checkbox_wrapper"]')
|
62
|
+
|
63
|
+
// check that the element exists with correct props
|
64
|
+
expect(checkboxWrapper.exists()).toBe(true)
|
65
|
+
expect(wrapper.vm.isChecked).toBe(false)
|
66
|
+
|
67
|
+
// Test the change
|
68
|
+
const inputCheckbox = checkboxWrapper.find('input[type="checkbox"]')
|
69
|
+
await inputCheckbox.trigger('change')
|
70
|
+
expect(wrapper.emitted('on-event-handler')).toBeTruthy()
|
71
|
+
const emittedEvent = wrapper.emitted('on-event-handler')
|
72
|
+
expect(emittedEvent).toHaveLength(1) // Check if the event was emitted exactly once
|
73
|
+
// Check the payload of the event
|
74
|
+
expect(emittedEvent[0]).toEqual([true])
|
75
|
+
await wrapper.setProps({ isChecked: true }) // manually update the props
|
76
|
+
|
77
|
+
// test the 2nd click
|
78
|
+
await inputCheckbox.trigger('change')
|
79
|
+
expect(wrapper.emitted('on-event-handler')).toBeTruthy()
|
80
|
+
expect(emittedEvent).toHaveLength(2) // Check if the event was emitted exactly once
|
81
|
+
// Check the payload of the event
|
82
|
+
expect(emittedEvent[1]).toEqual([false])
|
83
|
+
await wrapper.setProps({ isChecked: false }) // manually update the props
|
84
|
+
|
85
|
+
// test the 3rd click
|
86
|
+
await inputCheckbox.trigger('change')
|
87
|
+
expect(wrapper.emitted('on-event-handler')).toBeTruthy()
|
88
|
+
expect(emittedEvent).toHaveLength(3) // Check if the event was emitted exactly once
|
89
|
+
// Check the payload of the event
|
90
|
+
expect(emittedEvent[2]).toEqual([true])
|
91
|
+
await wrapper.setProps({ isChecked: true }) // manually update the props
|
92
|
+
})
|
93
|
+
it('should have a custom background color', async () => {
|
94
|
+
const checkboxWrapper = wrapper.find('[data-test-id="checkbox_wrapper"]')
|
95
|
+
await wrapper.setProps({ backgroundColor: theme.colors.red })
|
96
|
+
|
97
|
+
// check that the element exists with correct props
|
98
|
+
expect(checkboxWrapper.exists()).toBe(true)
|
99
|
+
expect(wrapper.vm.backgroundColor).toBe(theme.colors.red)
|
100
|
+
})
|
101
|
+
it('should have a custom checkbox color', async () => {
|
102
|
+
const checkboxWrapper = wrapper.find('[data-test-id="checkbox_wrapper"]')
|
103
|
+
await wrapper.setProps({ checkColor: theme.colors.brightBlue })
|
104
|
+
|
105
|
+
// check that the element exists with correct props
|
106
|
+
expect(checkboxWrapper.exists()).toBe(true)
|
107
|
+
expect(wrapper.vm.checkColor).toBe(theme.colors.brightBlue)
|
108
|
+
})
|
109
|
+
})
|
@@ -9,7 +9,7 @@ jest.mock('@/components/icon/iconCache.mjs', () => ({
|
|
9
9
|
}))
|
10
10
|
|
11
11
|
describe('RCToggle.vue', () => {
|
12
|
-
it('
|
12
|
+
it('toggle is rendered and emits correct payload on change', async () => {
|
13
13
|
const wrapper = mount(RCToggle, {
|
14
14
|
props: { isChecked: true, label: 'Test label', disabled: false },
|
15
15
|
global: {
|
@@ -42,7 +42,7 @@ describe('RCToggle.vue', () => {
|
|
42
42
|
// Check the payload of the event
|
43
43
|
expect(emittedEvent[0]).toEqual([false])
|
44
44
|
}),
|
45
|
-
it('
|
45
|
+
it('toggle disabled does not emit anything', async () => {
|
46
46
|
const wrapper = mount(RCToggle, {
|
47
47
|
props: { isChecked: false, disabled: true },
|
48
48
|
global: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import MyButton from './Button.vue'
|
1
|
+
import MyButton from './Button.vue'
|
2
2
|
|
3
3
|
// More on how to set up stories at: https://storybook.js.org/docs/vue/writing-stories/introduction
|
4
4
|
export default {
|
@@ -17,7 +17,7 @@ export default {
|
|
17
17
|
options: ['small', 'medium', 'large'],
|
18
18
|
},
|
19
19
|
},
|
20
|
-
}
|
20
|
+
}
|
21
21
|
|
22
22
|
// More on writing stories with args: https://storybook.js.org/docs/vue/writing-stories/args
|
23
23
|
export const Primary = {
|
@@ -25,24 +25,24 @@ export const Primary = {
|
|
25
25
|
primary: true,
|
26
26
|
label: 'Button',
|
27
27
|
},
|
28
|
-
}
|
28
|
+
}
|
29
29
|
|
30
30
|
export const Secondary = {
|
31
31
|
args: {
|
32
32
|
label: 'Button',
|
33
33
|
},
|
34
|
-
}
|
34
|
+
}
|
35
35
|
|
36
36
|
export const Large = {
|
37
37
|
args: {
|
38
38
|
size: 'large',
|
39
39
|
label: 'Button',
|
40
40
|
},
|
41
|
-
}
|
41
|
+
}
|
42
42
|
|
43
43
|
export const Small = {
|
44
44
|
args: {
|
45
45
|
size: 'small',
|
46
46
|
label: 'Button',
|
47
47
|
},
|
48
|
-
}
|
48
|
+
}
|