@eturnity/eturnity_reusable_components 1.2.19-dev03.1 → 1.2.19-v.5.42.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 (220) hide show
  1. package/.prettierrc +6 -6
  2. package/.storybook/main.js +8 -8
  3. package/.storybook/preview.js +46 -46
  4. package/README.md +29 -29
  5. package/babel.config.js +5 -5
  6. package/package.json +62 -62
  7. package/public/index.html +17 -17
  8. package/src/App.vue +215 -275
  9. package/src/assets/icons/arrow_down.svg +3 -3
  10. package/src/assets/icons/arrow_up_red.svg +3 -3
  11. package/src/assets/icons/black_spinner.svg +35 -35
  12. package/src/assets/icons/delete_icon.svg +11 -11
  13. package/src/assets/icons/delete_icon_gray.svg +11 -11
  14. package/src/assets/icons/drag_icon.svg +8 -8
  15. package/src/assets/icons/external_icon.svg +6 -6
  16. package/src/assets/icons/language_icon.svg +6 -6
  17. package/src/assets/icons/pdf_icon.svg +6 -6
  18. package/src/assets/icons/plus_button.svg +4 -4
  19. package/src/assets/icons/search_icon_black.svg +3 -3
  20. package/src/assets/icons/subposition_icon.svg +3 -3
  21. package/src/assets/icons/subposition_marker.svg +3 -3
  22. package/src/assets/icons/warning_icon.svg +3 -3
  23. package/src/assets/svgIcons/2d_active.svg +7 -7
  24. package/src/assets/svgIcons/2d_inactive.svg +8 -8
  25. package/src/assets/svgIcons/3d_active.svg +7 -7
  26. package/src/assets/svgIcons/3d_inactive.svg +8 -8
  27. package/src/assets/svgIcons/accept.svg +5 -5
  28. package/src/assets/svgIcons/activate_panels_active.svg +22 -22
  29. package/src/assets/svgIcons/activate_panels_inactive.svg +20 -20
  30. package/src/assets/svgIcons/add_icon-1.svg +3 -3
  31. package/src/assets/svgIcons/add_icon.svg +4 -4
  32. package/src/assets/svgIcons/address_book.svg +3 -3
  33. package/src/assets/svgIcons/after_sale_as_a_service.svg +6 -6
  34. package/src/assets/svgIcons/all_good.svg +3 -3
  35. package/src/assets/svgIcons/angle_active.svg +5 -5
  36. package/src/assets/svgIcons/angle_inactive.svg +4 -4
  37. package/src/assets/svgIcons/area_active.svg +11 -11
  38. package/src/assets/svgIcons/area_inactive.svg +26 -26
  39. package/src/assets/svgIcons/arrow_down.svg +3 -3
  40. package/src/assets/svgIcons/arrow_left.svg +4 -4
  41. package/src/assets/svgIcons/arrow_right.svg +4 -4
  42. package/src/assets/svgIcons/arrow_up.svg +3 -3
  43. package/src/assets/svgIcons/attachment.svg +3 -3
  44. package/src/assets/svgIcons/battery.svg +3 -3
  45. package/src/assets/svgIcons/bell.svg +3 -3
  46. package/src/assets/svgIcons/bold.svg +3 -3
  47. package/src/assets/svgIcons/bom.svg +3 -3
  48. package/src/assets/svgIcons/bom_generation.svg +10 -10
  49. package/src/assets/svgIcons/bubble.svg +3 -3
  50. package/src/assets/svgIcons/bullet_list.svg +8 -8
  51. package/src/assets/svgIcons/calendar.svg +7 -7
  52. package/src/assets/svgIcons/calendar_icon.svg +7 -7
  53. package/src/assets/svgIcons/call.svg +3 -3
  54. package/src/assets/svgIcons/camera.svg +3 -3
  55. package/src/assets/svgIcons/car.svg +3 -3
  56. package/src/assets/svgIcons/cart.svg +3 -3
  57. package/src/assets/svgIcons/checkbox.svg +3 -3
  58. package/src/assets/svgIcons/clear_formatting.svg +7 -7
  59. package/src/assets/svgIcons/clickable_info.svg +4 -4
  60. package/src/assets/svgIcons/clip.svg +3 -3
  61. package/src/assets/svgIcons/clock.svg +4 -4
  62. package/src/assets/svgIcons/close_for_modals,_tool_tips.svg +4 -4
  63. package/src/assets/svgIcons/collapse.svg +4 -4
  64. package/src/assets/svgIcons/component_library.svg +7 -7
  65. package/src/assets/svgIcons/context_menu-1.svg +6 -6
  66. package/src/assets/svgIcons/context_menu-2.svg +5 -5
  67. package/src/assets/svgIcons/context_menu.svg +5 -5
  68. package/src/assets/svgIcons/context_menu_tabs.svg +5 -5
  69. package/src/assets/svgIcons/current_variant.svg +4 -4
  70. package/src/assets/svgIcons/deadline.svg +4 -4
  71. package/src/assets/svgIcons/delete.svg +4 -4
  72. package/src/assets/svgIcons/delete_area_active.svg +16 -16
  73. package/src/assets/svgIcons/delete_area_inactive.svg +15 -15
  74. package/src/assets/svgIcons/direction_active-1.svg +12 -12
  75. package/src/assets/svgIcons/direction_active.svg +5 -5
  76. package/src/assets/svgIcons/direction_inactive.svg +4 -4
  77. package/src/assets/svgIcons/distances_active.svg +9 -9
  78. package/src/assets/svgIcons/distances_inactive.svg +8 -8
  79. package/src/assets/svgIcons/document.svg +3 -3
  80. package/src/assets/svgIcons/downarrow.svg +3 -3
  81. package/src/assets/svgIcons/download.svg +4 -4
  82. package/src/assets/svgIcons/duplicate-1.svg +8 -8
  83. package/src/assets/svgIcons/duplicate-2.svg +5 -5
  84. package/src/assets/svgIcons/duplicate-3.svg +3 -3
  85. package/src/assets/svgIcons/duplicate.svg +4 -4
  86. package/src/assets/svgIcons/e-mobility_configurator.svg +6 -6
  87. package/src/assets/svgIcons/edit_button.svg +3 -3
  88. package/src/assets/svgIcons/email.svg +3 -3
  89. package/src/assets/svgIcons/ems-1.svg +3 -3
  90. package/src/assets/svgIcons/ems.svg +3 -3
  91. package/src/assets/svgIcons/end_of_the_list.svg +5 -5
  92. package/src/assets/svgIcons/erase.svg +4 -4
  93. package/src/assets/svgIcons/fav_icon.svg +4 -4
  94. package/src/assets/svgIcons/financing_for_pv-1.svg +5 -5
  95. package/src/assets/svgIcons/financing_for_pv-2.svg +3 -3
  96. package/src/assets/svgIcons/financing_for_pv.svg +6 -6
  97. package/src/assets/svgIcons/finish-1.svg +4 -4
  98. package/src/assets/svgIcons/finish.svg +3 -3
  99. package/src/assets/svgIcons/folder.svg +3 -3
  100. package/src/assets/svgIcons/heat_calc.svg +7 -7
  101. package/src/assets/svgIcons/house.svg +3 -3
  102. package/src/assets/svgIcons/info.svg +3 -3
  103. package/src/assets/svgIcons/initial_situation.svg +3 -3
  104. package/src/assets/svgIcons/intro-tour-1.svg +3 -3
  105. package/src/assets/svgIcons/intro-tour.svg +3 -3
  106. package/src/assets/svgIcons/inverter-1.svg +5 -5
  107. package/src/assets/svgIcons/inverter.svg +3 -3
  108. package/src/assets/svgIcons/italic.svg +3 -3
  109. package/src/assets/svgIcons/key.svg +3 -3
  110. package/src/assets/svgIcons/lead_marketplace.svg +6 -6
  111. package/src/assets/svgIcons/lead_provider.svg +4 -4
  112. package/src/assets/svgIcons/length_in_2d_active.svg +12 -12
  113. package/src/assets/svgIcons/length_in_2d_inctive.svg +13 -13
  114. package/src/assets/svgIcons/light_bulb.svg +3 -3
  115. package/src/assets/svgIcons/line_graph.svg +3 -3
  116. package/src/assets/svgIcons/local_subsidies.svg +18 -18
  117. package/src/assets/svgIcons/location.svg +3 -3
  118. package/src/assets/svgIcons/lock.svg +3 -3
  119. package/src/assets/svgIcons/loop.svg +3 -3
  120. package/src/assets/svgIcons/lunch.svg +4 -4
  121. package/src/assets/svgIcons/map_icon.svg +3 -3
  122. package/src/assets/svgIcons/meeting.svg +6 -6
  123. package/src/assets/svgIcons/move_copy.svg +4 -4
  124. package/src/assets/svgIcons/new_area_inactive.svg +11 -11
  125. package/src/assets/svgIcons/next.svg +4 -4
  126. package/src/assets/svgIcons/not_equal_to.svg +3 -3
  127. package/src/assets/svgIcons/numbered_list.svg +6 -6
  128. package/src/assets/svgIcons/obstacle_tool.svg +13 -13
  129. package/src/assets/svgIcons/pan_tool.svg +12 -12
  130. package/src/assets/svgIcons/panels_tool.svg +8 -8
  131. package/src/assets/svgIcons/pen_tool.svg +4 -4
  132. package/src/assets/svgIcons/picker_tool.svg +4 -4
  133. package/src/assets/svgIcons/picture.svg +3 -3
  134. package/src/assets/svgIcons/pin.svg +5 -5
  135. package/src/assets/svgIcons/presentation.svg +3 -3
  136. package/src/assets/svgIcons/previous.svg +4 -4
  137. package/src/assets/svgIcons/profile-1.svg +4 -4
  138. package/src/assets/svgIcons/profile.svg +4 -4
  139. package/src/assets/svgIcons/profitability.svg +3 -3
  140. package/src/assets/svgIcons/project_analysis.svg +4 -4
  141. package/src/assets/svgIcons/project_settings.svg +4 -4
  142. package/src/assets/svgIcons/pv.svg +3 -3
  143. package/src/assets/svgIcons/quotations.svg +6 -6
  144. package/src/assets/svgIcons/rotate_view.svg +5 -5
  145. package/src/assets/svgIcons/run_simulation.svg +3 -3
  146. package/src/assets/svgIcons/scaling_tool.svg +8 -8
  147. package/src/assets/svgIcons/search.svg +3 -3
  148. package/src/assets/svgIcons/security.svg +3 -3
  149. package/src/assets/svgIcons/settings.svg +3 -3
  150. package/src/assets/svgIcons/show_in_a_new_tab.svg +12 -12
  151. package/src/assets/svgIcons/smartphone.svg +4 -4
  152. package/src/assets/svgIcons/solar_calc.svg +13 -13
  153. package/src/assets/svgIcons/sorting.svg +4 -4
  154. package/src/assets/svgIcons/start_of_the_list.svg +5 -5
  155. package/src/assets/svgIcons/strikethrough.svg +4 -4
  156. package/src/assets/svgIcons/subsidies-1.svg +5 -5
  157. package/src/assets/svgIcons/subsidies-2.svg +3 -3
  158. package/src/assets/svgIcons/subsidies.svg +3 -3
  159. package/src/assets/svgIcons/subtract_icon.svg +3 -3
  160. package/src/assets/svgIcons/suitcase.svg +3 -3
  161. package/src/assets/svgIcons/template_icon_not_clickable.svg +6 -6
  162. package/src/assets/svgIcons/truck.svg +3 -3
  163. package/src/assets/svgIcons/underlined.svg +3 -3
  164. package/src/assets/svgIcons/uparrow.svg +3 -3
  165. package/src/assets/svgIcons/upload_avatar-1.svg +12 -12
  166. package/src/assets/svgIcons/upload_avatar.svg +5 -5
  167. package/src/assets/svgIcons/upload_image.svg +8 -8
  168. package/src/assets/svgIcons/virtual_storage.svg +4 -4
  169. package/src/assets/svgIcons/warning.svg +4 -4
  170. package/src/assets/svgIcons/way.svg +5 -5
  171. package/src/assets/svgIcons/wifi.svg +3 -3
  172. package/src/assets/svgIcons/winter.svg +3 -3
  173. package/src/assets/theme.js +34 -36
  174. package/src/components/addNewButton/AddNewButton.stories.js +24 -24
  175. package/src/components/addNewButton/index.vue +58 -58
  176. package/src/components/buttons/closeButton/CloseButton.stories.js +29 -29
  177. package/src/components/buttons/closeButton/index.vue +61 -61
  178. package/src/components/buttons/externalButton/index.vue +101 -101
  179. package/src/components/buttons/mainButton/index.vue +82 -82
  180. package/src/components/deleteIcon/DeleteIcon.stories.js +29 -29
  181. package/src/components/deleteIcon/index.vue +55 -55
  182. package/src/components/errorMessage/index.vue +61 -61
  183. package/src/components/icon/Icons.stories.js +41 -41
  184. package/src/components/icon/iconCollection.vue +68 -68
  185. package/src/components/icon/index.vue +76 -73
  186. package/src/components/infoText/index.vue +165 -165
  187. package/src/components/inputs/checkbox/Checkbox.stories.js +57 -57
  188. package/src/components/inputs/checkbox/index.vue +182 -182
  189. package/src/components/inputs/inputNumber/InputNumber.stories.js +150 -150
  190. package/src/components/inputs/inputNumber/index.vue +475 -475
  191. package/src/components/inputs/inputNumberQuestion/index.vue +215 -215
  192. package/src/components/inputs/inputText/InputText.stories.js +75 -75
  193. package/src/components/inputs/inputText/index.vue +200 -200
  194. package/src/components/inputs/radioButton/RadioButton.stories.js +58 -58
  195. package/src/components/inputs/radioButton/index.vue +246 -253
  196. package/src/components/inputs/searchInput/SearchInput.stories.js +40 -40
  197. package/src/components/inputs/searchInput/index.vue +97 -96
  198. package/src/components/inputs/slider/index.vue +126 -126
  199. package/src/components/inputs/textAreaInput/TextAreaInput.stories.js +135 -135
  200. package/src/components/inputs/textAreaInput/index.vue +194 -194
  201. package/src/components/inputs/toggle/Toggle.stories.js +77 -77
  202. package/src/components/inputs/toggle/index.vue +288 -288
  203. package/src/components/modals/modal/index.vue +153 -153
  204. package/src/components/modals/modal/modal.stories.js +31 -31
  205. package/src/components/pageSubtitle/index.vue +68 -64
  206. package/src/components/pageTitle/index.vue +45 -37
  207. package/src/components/progressBar/index.vue +125 -125
  208. package/src/components/spinner/index.vue +71 -71
  209. package/src/components/tableDropdown/index.vue +644 -644
  210. package/src/components/tables/mainTable/exampleNested.vue +328 -328
  211. package/src/components/tables/mainTable/index.vue +365 -365
  212. package/src/components/tables/viewTable/index.vue +195 -195
  213. package/src/components/threeDots/index.vue +324 -324
  214. package/src/helpers/numberConverter.js +101 -101
  215. package/src/helpers/translateLang.js +80 -80
  216. package/src/main.js +11 -11
  217. package/src/assets/svgIcons/margin_tool.svg +0 -4
  218. package/src/assets/svgIcons/redo.svg +0 -6
  219. package/src/assets/svgIcons/undo.svg +0 -6
  220. package/src/components/iconWrapper/index.vue +0 -111
@@ -1,135 +1,135 @@
1
- import TextAreaInput from "./index.vue"
2
-
3
- export default {
4
- title: "TextAreaInput",
5
- component: TextAreaInput,
6
- // argTypes: {},
7
- }
8
-
9
- const Template = (args, { argTypes }) => ({
10
- // Components used in your story `template` are defined in the `components` object
11
- components: { TextAreaInput },
12
- // The story's `args` need to be mapped into the template through the `setup()` method
13
- props: Object.keys(argTypes),
14
- template: '<text-area-input v-bind="$props" />',
15
-
16
- // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
17
- // To use:
18
- // <text-area-input
19
- // placeholder="Comments"
20
- // @input-change="onInputChange({ value: $event, type: 'note' })"
21
- // :value="form.note"
22
- // rowHeight="4" //optional
23
- // :isError="false"
24
- // :errorText="$gettext('field_required')"
25
- // infoTextAlign="right" // left by default
26
- // infoTextMessage="My info message"
27
- // label="Question 5"
28
- // alignItems="horizontal" // horizontal, vertical
29
- // :isDisabled="true"
30
- // />
31
- })
32
-
33
- export const Default = Template.bind({})
34
- Default.args = {
35
- placeholder: "Enter a comment",
36
- isDisabled: false,
37
- rowHeight: "2",
38
- isError: false,
39
- errorText: "This field is required",
40
- infoTextAlign: "right",
41
- infoTextMessage: "",
42
- label: "",
43
- value: "",
44
- alignItems: "vertical",
45
- inputWidth: "350px",
46
- }
47
-
48
- export const Disabled = Template.bind({})
49
- Disabled.args = {
50
- placeholder: "Enter a comment",
51
- isDisabled: true,
52
- rowHeight: "2",
53
- isError: false,
54
- errorText: "This field is required",
55
- infoTextAlign: "right",
56
- infoTextMessage: "",
57
- label: "",
58
- value: "",
59
- alignItems: "vertical",
60
- inputWidth: "350px",
61
- }
62
-
63
- export const Error = Template.bind({})
64
- Error.args = {
65
- placeholder: "Enter a comment",
66
- isDisabled: false,
67
- rowHeight: "2",
68
- isError: true,
69
- errorText: "This field is required",
70
- infoTextAlign: "right",
71
- infoTextMessage: "",
72
- label: "",
73
- value: "",
74
- alignItems: "vertical",
75
- inputWidth: "350px",
76
- }
77
-
78
- export const WithLabel = Template.bind({})
79
- WithLabel.args = {
80
- placeholder: "Enter a comment",
81
- isDisabled: false,
82
- rowHeight: "2",
83
- isError: false,
84
- errorText: "This field is required",
85
- infoTextAlign: "right",
86
- infoTextMessage: "Here is some information",
87
- label: "Description",
88
- value: "Here is my description!",
89
- alignItems: "vertical",
90
- inputWidth: "350px",
91
- }
92
-
93
- export const HorizontalLabel = Template.bind({})
94
- HorizontalLabel.args = {
95
- placeholder: "Enter a comment",
96
- isDisabled: false,
97
- rowHeight: "2",
98
- isError: false,
99
- errorText: "This field is required",
100
- infoTextAlign: "right",
101
- infoTextMessage: "Here is some information",
102
- label: "Description",
103
- value: "Here is my description!",
104
- alignItems: "horizontal",
105
- inputWidth: "350px",
106
- }
107
-
108
- export const LargerTextArea = Template.bind({})
109
- LargerTextArea.args = {
110
- placeholder: "Enter a comment",
111
- isDisabled: false,
112
- rowHeight: "5",
113
- isError: false,
114
- errorText: "This field is required",
115
- infoTextAlign: "right",
116
- infoTextMessage: "Here is some information",
117
- label: "Description",
118
- value: "Here is my description!",
119
- alignItems: "vertical",
120
- }
121
-
122
- export const LargerFontSize = Template.bind({})
123
- LargerFontSize.args = {
124
- placeholder: "Enter a comment",
125
- isDisabled: false,
126
- rowHeight: "5",
127
- fontSize: "24px",
128
- isError: false,
129
- errorText: "This field is required",
130
- infoTextAlign: "right",
131
- infoTextMessage: "Here is some information",
132
- label: "Description",
133
- value: "Here is my description!",
134
- alignItems: "vertical",
135
- }
1
+ import TextAreaInput from "./index.vue"
2
+
3
+ export default {
4
+ title: "TextAreaInput",
5
+ component: TextAreaInput,
6
+ // argTypes: {},
7
+ }
8
+
9
+ const Template = (args, { argTypes }) => ({
10
+ // Components used in your story `template` are defined in the `components` object
11
+ components: { TextAreaInput },
12
+ // The story's `args` need to be mapped into the template through the `setup()` method
13
+ props: Object.keys(argTypes),
14
+ template: '<text-area-input v-bind="$props" />',
15
+
16
+ // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
17
+ // To use:
18
+ // <text-area-input
19
+ // placeholder="Comments"
20
+ // @input-change="onInputChange({ value: $event, type: 'note' })"
21
+ // :value="form.note"
22
+ // rowHeight="4" //optional
23
+ // :isError="false"
24
+ // :errorText="$gettext('field_required')"
25
+ // infoTextAlign="right" // left by default
26
+ // infoTextMessage="My info message"
27
+ // label="Question 5"
28
+ // alignItems="horizontal" // horizontal, vertical
29
+ // :isDisabled="true"
30
+ // />
31
+ })
32
+
33
+ export const Default = Template.bind({})
34
+ Default.args = {
35
+ placeholder: "Enter a comment",
36
+ isDisabled: false,
37
+ rowHeight: "2",
38
+ isError: false,
39
+ errorText: "This field is required",
40
+ infoTextAlign: "right",
41
+ infoTextMessage: "",
42
+ label: "",
43
+ value: "",
44
+ alignItems: "vertical",
45
+ inputWidth: "350px",
46
+ }
47
+
48
+ export const Disabled = Template.bind({})
49
+ Disabled.args = {
50
+ placeholder: "Enter a comment",
51
+ isDisabled: true,
52
+ rowHeight: "2",
53
+ isError: false,
54
+ errorText: "This field is required",
55
+ infoTextAlign: "right",
56
+ infoTextMessage: "",
57
+ label: "",
58
+ value: "",
59
+ alignItems: "vertical",
60
+ inputWidth: "350px",
61
+ }
62
+
63
+ export const Error = Template.bind({})
64
+ Error.args = {
65
+ placeholder: "Enter a comment",
66
+ isDisabled: false,
67
+ rowHeight: "2",
68
+ isError: true,
69
+ errorText: "This field is required",
70
+ infoTextAlign: "right",
71
+ infoTextMessage: "",
72
+ label: "",
73
+ value: "",
74
+ alignItems: "vertical",
75
+ inputWidth: "350px",
76
+ }
77
+
78
+ export const WithLabel = Template.bind({})
79
+ WithLabel.args = {
80
+ placeholder: "Enter a comment",
81
+ isDisabled: false,
82
+ rowHeight: "2",
83
+ isError: false,
84
+ errorText: "This field is required",
85
+ infoTextAlign: "right",
86
+ infoTextMessage: "Here is some information",
87
+ label: "Description",
88
+ value: "Here is my description!",
89
+ alignItems: "vertical",
90
+ inputWidth: "350px",
91
+ }
92
+
93
+ export const HorizontalLabel = Template.bind({})
94
+ HorizontalLabel.args = {
95
+ placeholder: "Enter a comment",
96
+ isDisabled: false,
97
+ rowHeight: "2",
98
+ isError: false,
99
+ errorText: "This field is required",
100
+ infoTextAlign: "right",
101
+ infoTextMessage: "Here is some information",
102
+ label: "Description",
103
+ value: "Here is my description!",
104
+ alignItems: "horizontal",
105
+ inputWidth: "350px",
106
+ }
107
+
108
+ export const LargerTextArea = Template.bind({})
109
+ LargerTextArea.args = {
110
+ placeholder: "Enter a comment",
111
+ isDisabled: false,
112
+ rowHeight: "5",
113
+ isError: false,
114
+ errorText: "This field is required",
115
+ infoTextAlign: "right",
116
+ infoTextMessage: "Here is some information",
117
+ label: "Description",
118
+ value: "Here is my description!",
119
+ alignItems: "vertical",
120
+ }
121
+
122
+ export const LargerFontSize = Template.bind({})
123
+ LargerFontSize.args = {
124
+ placeholder: "Enter a comment",
125
+ isDisabled: false,
126
+ rowHeight: "5",
127
+ fontSize: "24px",
128
+ isError: false,
129
+ errorText: "This field is required",
130
+ infoTextAlign: "right",
131
+ infoTextMessage: "Here is some information",
132
+ label: "Description",
133
+ value: "Here is my description!",
134
+ alignItems: "vertical",
135
+ }
@@ -1,194 +1,194 @@
1
- <template>
2
- <container :inputWidth="inputWidth">
3
- <input-wrapper
4
- :alignItems="alignItems"
5
- :hasLabel="label && label.length > 0"
6
- >
7
- <label-wrapper v-if="label">
8
- <input-label :fontSize="fontSize">{{ label }}</input-label>
9
- <info-text
10
- v-if="infoTextMessage"
11
- :text="infoTextMessage"
12
- borderColor="#ccc"
13
- size="16px"
14
- :alignText="infoTextAlign"
15
- />
16
- </label-wrapper>
17
- <input-container
18
- :placeholder="placeholder"
19
- :isError="isError"
20
- :rows="rowHeight"
21
- :value="value"
22
- :inputWidth="inputWidth"
23
- :disabled="isDisabled"
24
- :fontSize="fontSize"
25
- @input="onChangeHandler"
26
- :resize="resize"
27
- />
28
- </input-wrapper>
29
- <error-message v-if="isError && errorText">{{ errorText }}</error-message>
30
- </container>
31
- </template>
32
-
33
- <script>
34
- // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
35
- // To use:
36
- // <text-area-input
37
- // placeholder="Comments"
38
- // @input-change="onInputChange({ value: $event, type: 'note' })"
39
- // :value="form.note"
40
- // rowHeight="4" //optional
41
- // :isError="false"
42
- // :errorText="$gettext('field_required')"
43
- // infoTextAlign="right" // left by default
44
- // infoTextMessage="My info message"
45
- // label="Question 5"
46
- // alignItems="horizontal" // horizontal, vertical
47
- // :isDisabled="true"
48
- // />
49
- import styled from 'vue-styled-components'
50
- import InfoText from '../../infoText'
51
-
52
- const containerProps = { inputWidth: String }
53
- const Container = styled('div', containerProps)`
54
- width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
55
- position: relative;
56
- margin-bottom: 20px;
57
- `
58
-
59
- const LabelWrapper = styled.div`
60
- display: inline-grid;
61
- grid-template-columns: auto 1fr;
62
- grid-gap: 12px;
63
- align-items: center;
64
- `
65
-
66
- const inputProps = {
67
- isError: Boolean,
68
- disabled: Boolean,
69
- fontSize: String,
70
- inputWidth: String
71
- }
72
- const InputContainer = styled('textarea', inputProps)`
73
- border: ${(props) =>
74
- props.isError
75
- ? '1px solid ' + props.theme.colors.red
76
- : '1px solid ' + props.theme.colors.mediumGray};
77
- padding: ${(props) =>
78
- props.hasUnit ? '11px 40px 11px 10px' : '11px 5px 11px 10px'};
79
- border-radius: 4px;
80
- font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
81
- color: ${(props) => props.theme.colors.black};
82
- width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
83
- max-width: 100%;
84
- box-sizing: border-box; // to allow width of 100% with padding
85
- cursor: ${(props) => (props.disabled ? 'not-allowed' : 'inherit')};
86
-
87
- &::placeholder {
88
- color: ${(props) =>
89
- props.isError ? props.theme.colors.red : props.theme.colors.darkGray};
90
- }
91
-
92
- &:focus {
93
- outline: none;
94
- }
95
- `
96
-
97
- const inputAttrs = { alignItems: String, hasLabel: Boolean }
98
- const InputWrapper = styled('div', inputAttrs)`
99
- position: relative;
100
- display: grid;
101
- align-items: center;
102
- gap: 8px;
103
- grid-template-columns: ${(props) =>
104
- !props.hasLabel
105
- ? '1fr'
106
- : props.alignItems === 'vertical'
107
- ? '1fr'
108
- : 'auto 1fr'};
109
- `
110
-
111
- const ErrorMessage = styled.div`
112
- font-size: 14px;
113
- color: ${(props) => props.theme.colors.red};
114
- position: absolute;
115
- top: calc(100% + 1px);
116
- `
117
-
118
- const labelAttrs = { fontSize: String }
119
- const InputLabel = styled('div', labelAttrs)`
120
- font-weight: bold;
121
- font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
122
- `
123
-
124
- export default {
125
- name: 'text-area-input',
126
- components: {
127
- Container,
128
- InputContainer,
129
- InputWrapper,
130
- ErrorMessage,
131
- InfoText,
132
- LabelWrapper,
133
- InputLabel
134
- },
135
- props: {
136
- placeholder: {
137
- required: false,
138
- default: ''
139
- },
140
- isError: {
141
- required: false,
142
- default: false
143
- },
144
- rowHeight: {
145
- required: false,
146
- default: '2'
147
- },
148
- value: {
149
- required: true,
150
- default: null
151
- },
152
- errorText: {
153
- required: false
154
- },
155
- isDisabled: {
156
- required: false,
157
- default: false
158
- },
159
- alignItems: {
160
- required: false,
161
- default: 'horizontal'
162
- },
163
- infoTextMessage: {
164
- required: false
165
- },
166
- infoTextAlign: {
167
- required: false
168
- },
169
- label: {
170
- required: false
171
- },
172
- fontSize: {
173
- required: false,
174
- default: '16px'
175
- },
176
- inputWidth: {
177
- required: false,
178
- default: null,
179
- },
180
- resize:{
181
- required:false,
182
- default: "none"
183
- }
184
- },
185
- methods: {
186
- onChangeHandler($event) {
187
- if (this.isDisabled) {
188
- return
189
- }
190
- this.$emit('input-change', $event)
191
- }
192
- }
193
- }
194
- </script>
1
+ <template>
2
+ <container :inputWidth="inputWidth">
3
+ <input-wrapper
4
+ :alignItems="alignItems"
5
+ :hasLabel="label && label.length > 0"
6
+ >
7
+ <label-wrapper v-if="label">
8
+ <input-label :fontSize="fontSize">{{ label }}</input-label>
9
+ <info-text
10
+ v-if="infoTextMessage"
11
+ :text="infoTextMessage"
12
+ borderColor="#ccc"
13
+ size="16px"
14
+ :alignText="infoTextAlign"
15
+ />
16
+ </label-wrapper>
17
+ <input-container
18
+ :placeholder="placeholder"
19
+ :isError="isError"
20
+ :rows="rowHeight"
21
+ :value="value"
22
+ :inputWidth="inputWidth"
23
+ :disabled="isDisabled"
24
+ :fontSize="fontSize"
25
+ @input="onChangeHandler"
26
+ :resize="resize"
27
+ />
28
+ </input-wrapper>
29
+ <error-message v-if="isError && errorText">{{ errorText }}</error-message>
30
+ </container>
31
+ </template>
32
+
33
+ <script>
34
+ // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
35
+ // To use:
36
+ // <text-area-input
37
+ // placeholder="Comments"
38
+ // @input-change="onInputChange({ value: $event, type: 'note' })"
39
+ // :value="form.note"
40
+ // rowHeight="4" //optional
41
+ // :isError="false"
42
+ // :errorText="$gettext('field_required')"
43
+ // infoTextAlign="right" // left by default
44
+ // infoTextMessage="My info message"
45
+ // label="Question 5"
46
+ // alignItems="horizontal" // horizontal, vertical
47
+ // :isDisabled="true"
48
+ // />
49
+ import styled from 'vue-styled-components'
50
+ import InfoText from '../../infoText'
51
+
52
+ const containerProps = { inputWidth: String }
53
+ const Container = styled('div', containerProps)`
54
+ width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
55
+ position: relative;
56
+ margin-bottom: 20px;
57
+ `
58
+
59
+ const LabelWrapper = styled.div`
60
+ display: inline-grid;
61
+ grid-template-columns: auto 1fr;
62
+ grid-gap: 12px;
63
+ align-items: center;
64
+ `
65
+
66
+ const inputProps = {
67
+ isError: Boolean,
68
+ disabled: Boolean,
69
+ fontSize: String,
70
+ inputWidth: String
71
+ }
72
+ const InputContainer = styled('textarea', inputProps)`
73
+ border: ${(props) =>
74
+ props.isError
75
+ ? '1px solid ' + props.theme.colors.red
76
+ : '1px solid ' + props.theme.colors.mediumGray};
77
+ padding: ${(props) =>
78
+ props.hasUnit ? '11px 40px 11px 10px' : '11px 5px 11px 10px'};
79
+ border-radius: 4px;
80
+ font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
81
+ color: ${(props) => props.theme.colors.black};
82
+ width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
83
+ max-width: 100%;
84
+ box-sizing: border-box; // to allow width of 100% with padding
85
+ cursor: ${(props) => (props.disabled ? 'not-allowed' : 'inherit')};
86
+
87
+ &::placeholder {
88
+ color: ${(props) =>
89
+ props.isError ? props.theme.colors.red : props.theme.colors.darkGray};
90
+ }
91
+
92
+ &:focus {
93
+ outline: none;
94
+ }
95
+ `
96
+
97
+ const inputAttrs = { alignItems: String, hasLabel: Boolean }
98
+ const InputWrapper = styled('div', inputAttrs)`
99
+ position: relative;
100
+ display: grid;
101
+ align-items: center;
102
+ gap: 8px;
103
+ grid-template-columns: ${(props) =>
104
+ !props.hasLabel
105
+ ? '1fr'
106
+ : props.alignItems === 'vertical'
107
+ ? '1fr'
108
+ : 'auto 1fr'};
109
+ `
110
+
111
+ const ErrorMessage = styled.div`
112
+ font-size: 14px;
113
+ color: ${(props) => props.theme.colors.red};
114
+ position: absolute;
115
+ top: calc(100% + 1px);
116
+ `
117
+
118
+ const labelAttrs = { fontSize: String }
119
+ const InputLabel = styled('div', labelAttrs)`
120
+ font-weight: bold;
121
+ font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
122
+ `
123
+
124
+ export default {
125
+ name: 'text-area-input',
126
+ components: {
127
+ Container,
128
+ InputContainer,
129
+ InputWrapper,
130
+ ErrorMessage,
131
+ InfoText,
132
+ LabelWrapper,
133
+ InputLabel
134
+ },
135
+ props: {
136
+ placeholder: {
137
+ required: false,
138
+ default: ''
139
+ },
140
+ isError: {
141
+ required: false,
142
+ default: false
143
+ },
144
+ rowHeight: {
145
+ required: false,
146
+ default: '2'
147
+ },
148
+ value: {
149
+ required: true,
150
+ default: null
151
+ },
152
+ errorText: {
153
+ required: false
154
+ },
155
+ isDisabled: {
156
+ required: false,
157
+ default: false
158
+ },
159
+ alignItems: {
160
+ required: false,
161
+ default: 'horizontal'
162
+ },
163
+ infoTextMessage: {
164
+ required: false
165
+ },
166
+ infoTextAlign: {
167
+ required: false
168
+ },
169
+ label: {
170
+ required: false
171
+ },
172
+ fontSize: {
173
+ required: false,
174
+ default: '16px'
175
+ },
176
+ inputWidth: {
177
+ required: false,
178
+ default: null,
179
+ },
180
+ resize:{
181
+ required:false,
182
+ default: "none"
183
+ }
184
+ },
185
+ methods: {
186
+ onChangeHandler($event) {
187
+ if (this.isDisabled) {
188
+ return
189
+ }
190
+ this.$emit('input-change', $event)
191
+ }
192
+ }
193
+ }
194
+ </script>