@eturnity/eturnity_reusable_components 1.2.19-EPDM-5310.4 → 1.2.19-EPDM-5448.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 (219) 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 +221 -218
  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/margin_tool.svg +4 -0
  123. package/src/assets/svgIcons/meeting.svg +6 -6
  124. package/src/assets/svgIcons/move_copy.svg +4 -4
  125. package/src/assets/svgIcons/new_area_inactive.svg +11 -11
  126. package/src/assets/svgIcons/next.svg +4 -4
  127. package/src/assets/svgIcons/not_equal_to.svg +3 -3
  128. package/src/assets/svgIcons/numbered_list.svg +6 -6
  129. package/src/assets/svgIcons/obstacle_tool.svg +13 -13
  130. package/src/assets/svgIcons/pan_tool.svg +12 -12
  131. package/src/assets/svgIcons/panels_tool.svg +8 -8
  132. package/src/assets/svgIcons/pen_tool.svg +4 -4
  133. package/src/assets/svgIcons/picker_tool.svg +4 -4
  134. package/src/assets/svgIcons/picture.svg +3 -3
  135. package/src/assets/svgIcons/pin.svg +5 -5
  136. package/src/assets/svgIcons/presentation.svg +3 -3
  137. package/src/assets/svgIcons/previous.svg +4 -4
  138. package/src/assets/svgIcons/profile-1.svg +4 -4
  139. package/src/assets/svgIcons/profile.svg +4 -4
  140. package/src/assets/svgIcons/profitability.svg +3 -3
  141. package/src/assets/svgIcons/project_analysis.svg +4 -4
  142. package/src/assets/svgIcons/project_settings.svg +4 -4
  143. package/src/assets/svgIcons/pv.svg +3 -3
  144. package/src/assets/svgIcons/quotations.svg +6 -6
  145. package/src/assets/svgIcons/redo.svg +6 -0
  146. package/src/assets/svgIcons/rotate_view.svg +5 -5
  147. package/src/assets/svgIcons/run_simulation.svg +3 -3
  148. package/src/assets/svgIcons/scaling_tool.svg +8 -8
  149. package/src/assets/svgIcons/search.svg +3 -3
  150. package/src/assets/svgIcons/security.svg +3 -3
  151. package/src/assets/svgIcons/settings.svg +3 -3
  152. package/src/assets/svgIcons/show_in_a_new_tab.svg +12 -12
  153. package/src/assets/svgIcons/smartphone.svg +4 -4
  154. package/src/assets/svgIcons/solar_calc.svg +13 -13
  155. package/src/assets/svgIcons/sorting.svg +4 -4
  156. package/src/assets/svgIcons/start_of_the_list.svg +5 -5
  157. package/src/assets/svgIcons/strikethrough.svg +4 -4
  158. package/src/assets/svgIcons/subsidies-1.svg +5 -5
  159. package/src/assets/svgIcons/subsidies-2.svg +3 -3
  160. package/src/assets/svgIcons/subsidies.svg +3 -3
  161. package/src/assets/svgIcons/subtract_icon.svg +3 -3
  162. package/src/assets/svgIcons/suitcase.svg +3 -3
  163. package/src/assets/svgIcons/template_icon_not_clickable.svg +6 -6
  164. package/src/assets/svgIcons/truck.svg +3 -3
  165. package/src/assets/svgIcons/underlined.svg +3 -3
  166. package/src/assets/svgIcons/undo.svg +6 -0
  167. package/src/assets/svgIcons/uparrow.svg +3 -3
  168. package/src/assets/svgIcons/upload_avatar-1.svg +12 -12
  169. package/src/assets/svgIcons/upload_avatar.svg +5 -5
  170. package/src/assets/svgIcons/upload_image.svg +8 -8
  171. package/src/assets/svgIcons/virtual_storage.svg +4 -4
  172. package/src/assets/svgIcons/warning.svg +4 -4
  173. package/src/assets/svgIcons/way.svg +5 -5
  174. package/src/assets/svgIcons/wifi.svg +3 -3
  175. package/src/assets/svgIcons/winter.svg +3 -3
  176. package/src/assets/theme.js +36 -34
  177. package/src/components/addNewButton/AddNewButton.stories.js +24 -24
  178. package/src/components/addNewButton/index.vue +58 -58
  179. package/src/components/buttons/closeButton/CloseButton.stories.js +29 -29
  180. package/src/components/buttons/closeButton/index.vue +61 -61
  181. package/src/components/buttons/externalButton/index.vue +101 -101
  182. package/src/components/buttons/mainButton/index.vue +82 -82
  183. package/src/components/deleteIcon/DeleteIcon.stories.js +29 -29
  184. package/src/components/deleteIcon/index.vue +55 -55
  185. package/src/components/icon/Icons.stories.js +41 -41
  186. package/src/components/icon/iconCollection.vue +68 -68
  187. package/src/components/icon/index.vue +73 -76
  188. package/src/components/iconWrapper/index.vue +84 -0
  189. package/src/components/infoText/index.vue +151 -151
  190. package/src/components/inputs/checkbox/Checkbox.stories.js +57 -57
  191. package/src/components/inputs/checkbox/index.vue +182 -182
  192. package/src/components/inputs/inputNumber/InputNumber.stories.js +150 -150
  193. package/src/components/inputs/inputNumber/index.vue +390 -390
  194. package/src/components/inputs/inputNumberQuestion/index.vue +215 -215
  195. package/src/components/inputs/inputText/InputText.stories.js +75 -75
  196. package/src/components/inputs/inputText/index.vue +198 -198
  197. package/src/components/inputs/radioButton/RadioButton.stories.js +58 -58
  198. package/src/components/inputs/radioButton/index.vue +253 -253
  199. package/src/components/inputs/searchInput/SearchInput.stories.js +40 -40
  200. package/src/components/inputs/searchInput/index.vue +96 -97
  201. package/src/components/inputs/slider/index.vue +126 -126
  202. package/src/components/inputs/textAreaInput/TextAreaInput.stories.js +135 -135
  203. package/src/components/inputs/textAreaInput/index.vue +189 -189
  204. package/src/components/inputs/toggle/Toggle.stories.js +77 -77
  205. package/src/components/inputs/toggle/index.vue +288 -288
  206. package/src/components/modals/modal/index.vue +153 -153
  207. package/src/components/modals/modal/modal.stories.js +31 -31
  208. package/src/components/pageSubtitle/index.vue +64 -68
  209. package/src/components/pageTitle/index.vue +37 -41
  210. package/src/components/progressBar/index.vue +125 -125
  211. package/src/components/spinner/index.vue +71 -71
  212. package/src/components/tableDropdown/index.vue +644 -644
  213. package/src/components/tables/mainTable/exampleNested.vue +328 -328
  214. package/src/components/tables/mainTable/index.vue +365 -365
  215. package/src/components/tables/viewTable/index.vue +195 -195
  216. package/src/components/threeDots/index.vue +324 -324
  217. package/src/helpers/numberConverter.js +98 -98
  218. package/src/helpers/translateLang.js +80 -80
  219. package/src/main.js +11 -11
@@ -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,189 +1,189 @@
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="16"
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
- />
27
- </input-wrapper>
28
- <error-message v-if="isError && errorText">{{ errorText }}</error-message>
29
- </container>
30
- </template>
31
-
32
- <script>
33
- // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
34
- // To use:
35
- // <text-area-input
36
- // placeholder="Comments"
37
- // @input-change="onInputChange({ value: $event, type: 'note' })"
38
- // :value="form.note"
39
- // rowHeight="4" //optional
40
- // :isError="false"
41
- // :errorText="$gettext('field_required')"
42
- // infoTextAlign="right" // left by default
43
- // infoTextMessage="My info message"
44
- // label="Question 5"
45
- // alignItems="horizontal" // horizontal, vertical
46
- // :isDisabled="true"
47
- // />
48
- import styled from 'vue-styled-components'
49
- import InfoText from '../../infoText'
50
-
51
- const containerProps = { inputWidth: String }
52
- const Container = styled('div', containerProps)`
53
- width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
54
- position: relative;
55
- margin-bottom: 20px;
56
- `
57
-
58
- const LabelWrapper = styled.div`
59
- display: inline-grid;
60
- grid-template-columns: auto 1fr;
61
- grid-gap: 12px;
62
- align-items: center;
63
- `
64
-
65
- const inputProps = {
66
- isError: Boolean,
67
- disabled: Boolean,
68
- fontSize: String,
69
- inputWidth: String
70
- }
71
- const InputContainer = styled('textarea', inputProps)`
72
- border: ${(props) =>
73
- props.isError
74
- ? '1px solid ' + props.theme.colors.red
75
- : '1px solid ' + props.theme.colors.mediumGray};
76
- padding: ${(props) =>
77
- props.hasUnit ? '11px 40px 11px 10px' : '11px 5px 11px 10px'};
78
- border-radius: 4px;
79
- font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
80
- color: ${(props) => props.theme.colors.black};
81
- width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
82
- max-width: 100%;
83
- box-sizing: border-box; // to allow width of 100% with padding
84
- cursor: ${(props) => (props.disabled ? 'not-allowed' : 'inherit')};
85
-
86
- &::placeholder {
87
- color: ${(props) =>
88
- props.isError ? props.theme.colors.red : props.theme.colors.darkGray};
89
- }
90
-
91
- &:focus {
92
- outline: none;
93
- }
94
- `
95
-
96
- const inputAttrs = { alignItems: String, hasLabel: Boolean }
97
- const InputWrapper = styled('div', inputAttrs)`
98
- position: relative;
99
- display: grid;
100
- align-items: center;
101
- gap: 8px;
102
- grid-template-columns: ${(props) =>
103
- !props.hasLabel
104
- ? '1fr'
105
- : props.alignItems === 'vertical'
106
- ? '1fr'
107
- : 'auto 1fr'};
108
- `
109
-
110
- const ErrorMessage = styled.div`
111
- font-size: 14px;
112
- color: ${(props) => props.theme.colors.red};
113
- position: absolute;
114
- top: calc(100% + 1px);
115
- `
116
-
117
- const labelAttrs = { fontSize: String }
118
- const InputLabel = styled('div', labelAttrs)`
119
- font-weight: bold;
120
- font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
121
- `
122
-
123
- export default {
124
- name: 'text-area-input',
125
- components: {
126
- Container,
127
- InputContainer,
128
- InputWrapper,
129
- ErrorMessage,
130
- InfoText,
131
- LabelWrapper,
132
- InputLabel
133
- },
134
- props: {
135
- placeholder: {
136
- required: false,
137
- default: ''
138
- },
139
- isError: {
140
- required: false,
141
- default: false
142
- },
143
- rowHeight: {
144
- required: false,
145
- default: '2'
146
- },
147
- value: {
148
- required: true,
149
- default: null
150
- },
151
- errorText: {
152
- required: false
153
- },
154
- isDisabled: {
155
- required: false,
156
- default: false
157
- },
158
- alignItems: {
159
- required: false,
160
- default: 'horizontal'
161
- },
162
- infoTextMessage: {
163
- required: false
164
- },
165
- infoTextAlign: {
166
- required: false
167
- },
168
- label: {
169
- required: false
170
- },
171
- fontSize: {
172
- required: false,
173
- default: '16px'
174
- },
175
- inputWidth: {
176
- required: false,
177
- default: null
178
- }
179
- },
180
- methods: {
181
- onChangeHandler($event) {
182
- if (this.isDisabled) {
183
- return
184
- }
185
- this.$emit('input-change', $event)
186
- }
187
- }
188
- }
189
- </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="16"
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
+ />
27
+ </input-wrapper>
28
+ <error-message v-if="isError && errorText">{{ errorText }}</error-message>
29
+ </container>
30
+ </template>
31
+
32
+ <script>
33
+ // import TextAreaInput from "@eturnity/eturnity_reusable_components/src/components/inputs/textAreaInput"
34
+ // To use:
35
+ // <text-area-input
36
+ // placeholder="Comments"
37
+ // @input-change="onInputChange({ value: $event, type: 'note' })"
38
+ // :value="form.note"
39
+ // rowHeight="4" //optional
40
+ // :isError="false"
41
+ // :errorText="$gettext('field_required')"
42
+ // infoTextAlign="right" // left by default
43
+ // infoTextMessage="My info message"
44
+ // label="Question 5"
45
+ // alignItems="horizontal" // horizontal, vertical
46
+ // :isDisabled="true"
47
+ // />
48
+ import styled from 'vue-styled-components'
49
+ import InfoText from '../../infoText'
50
+
51
+ const containerProps = { inputWidth: String }
52
+ const Container = styled('div', containerProps)`
53
+ width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
54
+ position: relative;
55
+ margin-bottom: 20px;
56
+ `
57
+
58
+ const LabelWrapper = styled.div`
59
+ display: inline-grid;
60
+ grid-template-columns: auto 1fr;
61
+ grid-gap: 12px;
62
+ align-items: center;
63
+ `
64
+
65
+ const inputProps = {
66
+ isError: Boolean,
67
+ disabled: Boolean,
68
+ fontSize: String,
69
+ inputWidth: String
70
+ }
71
+ const InputContainer = styled('textarea', inputProps)`
72
+ border: ${(props) =>
73
+ props.isError
74
+ ? '1px solid ' + props.theme.colors.red
75
+ : '1px solid ' + props.theme.colors.mediumGray};
76
+ padding: ${(props) =>
77
+ props.hasUnit ? '11px 40px 11px 10px' : '11px 5px 11px 10px'};
78
+ border-radius: 4px;
79
+ font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
80
+ color: ${(props) => props.theme.colors.black};
81
+ width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
82
+ max-width: 100%;
83
+ box-sizing: border-box; // to allow width of 100% with padding
84
+ cursor: ${(props) => (props.disabled ? 'not-allowed' : 'inherit')};
85
+
86
+ &::placeholder {
87
+ color: ${(props) =>
88
+ props.isError ? props.theme.colors.red : props.theme.colors.darkGray};
89
+ }
90
+
91
+ &:focus {
92
+ outline: none;
93
+ }
94
+ `
95
+
96
+ const inputAttrs = { alignItems: String, hasLabel: Boolean }
97
+ const InputWrapper = styled('div', inputAttrs)`
98
+ position: relative;
99
+ display: grid;
100
+ align-items: center;
101
+ gap: 8px;
102
+ grid-template-columns: ${(props) =>
103
+ !props.hasLabel
104
+ ? '1fr'
105
+ : props.alignItems === 'vertical'
106
+ ? '1fr'
107
+ : 'auto 1fr'};
108
+ `
109
+
110
+ const ErrorMessage = styled.div`
111
+ font-size: 14px;
112
+ color: ${(props) => props.theme.colors.red};
113
+ position: absolute;
114
+ top: calc(100% + 1px);
115
+ `
116
+
117
+ const labelAttrs = { fontSize: String }
118
+ const InputLabel = styled('div', labelAttrs)`
119
+ font-weight: bold;
120
+ font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
121
+ `
122
+
123
+ export default {
124
+ name: 'text-area-input',
125
+ components: {
126
+ Container,
127
+ InputContainer,
128
+ InputWrapper,
129
+ ErrorMessage,
130
+ InfoText,
131
+ LabelWrapper,
132
+ InputLabel
133
+ },
134
+ props: {
135
+ placeholder: {
136
+ required: false,
137
+ default: ''
138
+ },
139
+ isError: {
140
+ required: false,
141
+ default: false
142
+ },
143
+ rowHeight: {
144
+ required: false,
145
+ default: '2'
146
+ },
147
+ value: {
148
+ required: true,
149
+ default: null
150
+ },
151
+ errorText: {
152
+ required: false
153
+ },
154
+ isDisabled: {
155
+ required: false,
156
+ default: false
157
+ },
158
+ alignItems: {
159
+ required: false,
160
+ default: 'horizontal'
161
+ },
162
+ infoTextMessage: {
163
+ required: false
164
+ },
165
+ infoTextAlign: {
166
+ required: false
167
+ },
168
+ label: {
169
+ required: false
170
+ },
171
+ fontSize: {
172
+ required: false,
173
+ default: '16px'
174
+ },
175
+ inputWidth: {
176
+ required: false,
177
+ default: null
178
+ }
179
+ },
180
+ methods: {
181
+ onChangeHandler($event) {
182
+ if (this.isDisabled) {
183
+ return
184
+ }
185
+ this.$emit('input-change', $event)
186
+ }
187
+ }
188
+ }
189
+ </script>