guestbell-forms 2.0.298 → 2.0.299

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 (209) hide show
  1. package/build/components/InputHeader/InputHeader.js +258 -323
  2. package/build/components/InputHeader/InputHeader.js.map +1 -1
  3. package/build/components/InputHeader/InputHeaderContext.js +6 -8
  4. package/build/components/InputHeader/InputHeaderContext.js.map +1 -1
  5. package/build/components/InputHeader/index.js +4 -6
  6. package/build/components/InputHeader/index.js.map +1 -1
  7. package/build/components/InputHeader/withInputHeaderContext.js +9 -13
  8. package/build/components/InputHeader/withInputHeaderContext.js.map +1 -1
  9. package/build/components/base/input/BaseInput.js +334 -418
  10. package/build/components/base/input/BaseInput.js.map +1 -1
  11. package/build/components/base/input/index.js +1 -1
  12. package/build/components/base/input/index.js.map +1 -1
  13. package/build/components/bookingCalendar/BookingCalendar.js +68 -85
  14. package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
  15. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js +40 -71
  16. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
  17. package/build/components/bookingCalendar/bookingCalendarControls/classes.js +1 -1
  18. package/build/components/bookingCalendar/bookingCalendarControls/classes.js.map +1 -1
  19. package/build/components/bookingCalendar/bookingCalendarControls/index.js +2 -2
  20. package/build/components/bookingCalendar/bookingCalendarControls/index.js.map +1 -1
  21. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js +22 -41
  22. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js.map +1 -1
  23. package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.js +1 -1
  24. package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.js.map +1 -1
  25. package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js +2 -2
  26. package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js.map +1 -1
  27. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js +20 -24
  28. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js.map +1 -1
  29. package/build/components/bookingCalendar/bookingCalendarGrid/classes.js +1 -1
  30. package/build/components/bookingCalendar/bookingCalendarGrid/classes.js.map +1 -1
  31. package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js +9 -12
  32. package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js.map +1 -1
  33. package/build/components/bookingCalendar/bookingCalendarItem/classes.js +1 -1
  34. package/build/components/bookingCalendar/bookingCalendarItem/classes.js.map +1 -1
  35. package/build/components/bookingCalendar/bookingCalendarItem/index.js +2 -2
  36. package/build/components/bookingCalendar/bookingCalendarItem/index.js.map +1 -1
  37. package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js +23 -28
  38. package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js.map +1 -1
  39. package/build/components/bookingCalendar/bookingCalendarLane/classes.js +1 -1
  40. package/build/components/bookingCalendar/bookingCalendarLane/classes.js.map +1 -1
  41. package/build/components/bookingCalendar/bookingCalendarLane/index.js +2 -2
  42. package/build/components/bookingCalendar/bookingCalendarLane/index.js.map +1 -1
  43. package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js +6 -6
  44. package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js.map +1 -1
  45. package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.js +1 -1
  46. package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.js.map +1 -1
  47. package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js +1 -1
  48. package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js.map +1 -1
  49. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js +12 -16
  50. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js.map +1 -1
  51. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js +27 -31
  52. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
  53. package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.js +1 -1
  54. package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.js.map +1 -1
  55. package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js +2 -2
  56. package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js.map +1 -1
  57. package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js +19 -19
  58. package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js.map +1 -1
  59. package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.js +1 -1
  60. package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.js.map +1 -1
  61. package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js +1 -1
  62. package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js.map +1 -1
  63. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +133 -175
  64. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
  65. package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js +17 -19
  66. package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js.map +1 -1
  67. package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.js +1 -1
  68. package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.js.map +1 -1
  69. package/build/components/bookingCalendar/classes.js +1 -1
  70. package/build/components/bookingCalendar/classes.js.map +1 -1
  71. package/build/components/bookingCalendar/common.js +5 -7
  72. package/build/components/bookingCalendar/common.js.map +1 -1
  73. package/build/components/bookingCalendar/index.js +3 -3
  74. package/build/components/bookingCalendar/index.js.map +1 -1
  75. package/build/components/bookingCalendar/utils.js +143 -205
  76. package/build/components/bookingCalendar/utils.js.map +1 -1
  77. package/build/components/button/Button.js +101 -123
  78. package/build/components/button/Button.js.map +1 -1
  79. package/build/components/button/index.js +4 -6
  80. package/build/components/button/index.js.map +1 -1
  81. package/build/components/checkbox/Checkbox.js +102 -145
  82. package/build/components/checkbox/Checkbox.js.map +1 -1
  83. package/build/components/checkbox/index.js +4 -6
  84. package/build/components/checkbox/index.js.map +1 -1
  85. package/build/components/dropdown/Dropdown.js +41 -57
  86. package/build/components/dropdown/Dropdown.js.map +1 -1
  87. package/build/components/dropdown/index.js +4 -6
  88. package/build/components/dropdown/index.js.map +1 -1
  89. package/build/components/dynamicSubmit/DynamicSubmit.js +81 -123
  90. package/build/components/dynamicSubmit/DynamicSubmit.js.map +1 -1
  91. package/build/components/dynamicSubmit/index.js +4 -6
  92. package/build/components/dynamicSubmit/index.js.map +1 -1
  93. package/build/components/form/Form.js +139 -193
  94. package/build/components/form/Form.js.map +1 -1
  95. package/build/components/form/FormContext.js +6 -8
  96. package/build/components/form/FormContext.js.map +1 -1
  97. package/build/components/form/FormValidationSummary.js +57 -105
  98. package/build/components/form/FormValidationSummary.js.map +1 -1
  99. package/build/components/form/index.js +5 -7
  100. package/build/components/form/index.js.map +1 -1
  101. package/build/components/form/withFormContext.js +9 -13
  102. package/build/components/form/withFormContext.js.map +1 -1
  103. package/build/components/inputGroup/InputGroup.js +16 -48
  104. package/build/components/inputGroup/InputGroup.js.map +1 -1
  105. package/build/components/inputGroup/index.js +4 -6
  106. package/build/components/inputGroup/index.js.map +1 -1
  107. package/build/components/money/Money.js +137 -211
  108. package/build/components/money/Money.js.map +1 -1
  109. package/build/components/money/index.js +4 -6
  110. package/build/components/money/index.js.map +1 -1
  111. package/build/components/numberInput/NumberInput.js +106 -144
  112. package/build/components/numberInput/NumberInput.js.map +1 -1
  113. package/build/components/numberInput/index.js +4 -6
  114. package/build/components/numberInput/index.js.map +1 -1
  115. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +162 -220
  116. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
  117. package/build/components/openingHours/openingHoursDay/index.js +4 -6
  118. package/build/components/openingHours/openingHoursDay/index.js.map +1 -1
  119. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js +114 -191
  120. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js.map +1 -1
  121. package/build/components/openingHours/openingHoursSpecial/index.js +4 -6
  122. package/build/components/openingHours/openingHoursSpecial/index.js.map +1 -1
  123. package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js +150 -209
  124. package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js.map +1 -1
  125. package/build/components/openingHours/openingHoursWeek/index.js +4 -6
  126. package/build/components/openingHours/openingHoursWeek/index.js.map +1 -1
  127. package/build/components/openingHours/utils/OpeningHoursUtil.js +51 -76
  128. package/build/components/openingHours/utils/OpeningHoursUtil.js.map +1 -1
  129. package/build/components/radio/Radio.js +38 -75
  130. package/build/components/radio/Radio.js.map +1 -1
  131. package/build/components/radio/index.js +4 -6
  132. package/build/components/radio/index.js.map +1 -1
  133. package/build/components/radioContainer/RadioContainer.js +19 -49
  134. package/build/components/radioContainer/RadioContainer.js.map +1 -1
  135. package/build/components/radioContainer/index.js +4 -6
  136. package/build/components/radioContainer/index.js.map +1 -1
  137. package/build/components/select/Select.js +186 -264
  138. package/build/components/select/Select.js.map +1 -1
  139. package/build/components/select/index.js +4 -6
  140. package/build/components/select/index.js.map +1 -1
  141. package/build/components/submit/Submit.js +50 -87
  142. package/build/components/submit/Submit.js.map +1 -1
  143. package/build/components/submit/index.js +4 -6
  144. package/build/components/submit/index.js.map +1 -1
  145. package/build/components/submit/subComponents/SubmitValidationSummary.js +5 -7
  146. package/build/components/submit/subComponents/SubmitValidationSummary.js.map +1 -1
  147. package/build/components/tags/Tags.js +365 -565
  148. package/build/components/tags/Tags.js.map +1 -1
  149. package/build/components/tags/index.js +4 -6
  150. package/build/components/tags/index.js.map +1 -1
  151. package/build/components/tags/subComponents/TagsSuggestions.js +29 -30
  152. package/build/components/tags/subComponents/TagsSuggestions.js.map +1 -1
  153. package/build/components/text/Text.js +95 -138
  154. package/build/components/text/Text.js.map +1 -1
  155. package/build/components/text/index.js +4 -6
  156. package/build/components/text/index.js.map +1 -1
  157. package/build/components/textArea/TextArea.js +52 -91
  158. package/build/components/textArea/TextArea.js.map +1 -1
  159. package/build/components/textArea/index.js +4 -6
  160. package/build/components/textArea/index.js.map +1 -1
  161. package/build/components/themeProvider/ThemeContext.js +6 -8
  162. package/build/components/themeProvider/ThemeContext.js.map +1 -1
  163. package/build/components/themeProvider/ThemeProvider.js +3 -5
  164. package/build/components/themeProvider/ThemeProvider.js.map +1 -1
  165. package/build/components/themeProvider/index.js +4 -6
  166. package/build/components/themeProvider/index.js.map +1 -1
  167. package/build/components/themeProvider/withThemeContext.js +10 -14
  168. package/build/components/themeProvider/withThemeContext.js.map +1 -1
  169. package/build/components/time/Time.js +184 -228
  170. package/build/components/time/Time.js.map +1 -1
  171. package/build/components/time/index.js +4 -6
  172. package/build/components/time/index.js.map +1 -1
  173. package/build/components/timeSpan/TimeSpan.js +226 -280
  174. package/build/components/timeSpan/TimeSpan.js.map +1 -1
  175. package/build/components/timeSpan/index.js +4 -6
  176. package/build/components/timeSpan/index.js.map +1 -1
  177. package/build/components/utils/Guid.js +3 -5
  178. package/build/components/utils/Guid.js.map +1 -1
  179. package/build/components/utils/ShallowEqual.js +5 -11
  180. package/build/components/utils/ShallowEqual.js.map +1 -1
  181. package/build/components/utils/TimeUtil.js +8 -22
  182. package/build/components/utils/TimeUtil.js.map +1 -1
  183. package/build/components/utils/Typescript.js.map +1 -1
  184. package/build/dist/guestbell-forms.css +0 -6
  185. package/build/dist/guestbell-forms.css.map +1 -1
  186. package/build/dist/guestbell-forms.min.css +1 -1
  187. package/build/dist/guestbell-forms.min.js +1 -1
  188. package/build/dist/guestbell-forms.min.js.map +1 -1
  189. package/build/dist/report.html +2 -2
  190. package/build/index.js +23 -23
  191. package/build/index.js.map +1 -1
  192. package/build/types/ElementOverrideProp.js.map +1 -1
  193. package/build/types/Theme.js.map +1 -1
  194. package/build/types/ThemeOverrides.js.map +1 -1
  195. package/build/validators/EmailValidator.js +8 -22
  196. package/build/validators/EmailValidator.js.map +1 -1
  197. package/build/validators/LatitudeValidator.js +13 -27
  198. package/build/validators/LatitudeValidator.js.map +1 -1
  199. package/build/validators/LongitudeValidator.js +13 -27
  200. package/build/validators/LongitudeValidator.js.map +1 -1
  201. package/build/validators/NumberValidator.js +27 -39
  202. package/build/validators/NumberValidator.js.map +1 -1
  203. package/build/validators/UrlValidator.js +9 -23
  204. package/build/validators/UrlValidator.js.map +1 -1
  205. package/build/validators/base.js.map +1 -1
  206. package/build/validators/index.js +6 -6
  207. package/build/validators/index.js.map +1 -1
  208. package/package.json +8 -5
  209. package/tsconfig.json +0 -1
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.default = exports.Select = exports.SelectRaw = void 0;
6
+ exports.default = exports.SelectRaw = exports.Select = void 0;
9
7
 
10
8
  var React = _interopRequireWildcard(require("react"));
11
9
 
12
10
  var _InputGroup = _interopRequireDefault(require("../inputGroup/InputGroup"));
13
11
 
14
- var _BaseInput2 = require("../base/input/BaseInput");
12
+ var _BaseInput = require("../base/input/BaseInput");
15
13
 
16
14
  var _Button = require("../button/Button");
17
15
 
@@ -21,35 +19,11 @@ var _withThemeContext = require("../themeProvider/withThemeContext");
21
19
 
22
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
21
 
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
33
-
34
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
-
36
- function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
37
-
38
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
39
-
40
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
41
-
42
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
23
 
44
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
25
 
46
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
47
-
48
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
49
-
50
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
-
52
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
53
27
 
54
28
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
55
29
 
@@ -66,283 +40,231 @@ PlusIcon.defaultProps = {
66
40
  viewBox: "0 0 24 24"
67
41
  };
68
42
 
69
- var SelectRaw = /*#__PURE__*/function (_BaseInput) {
70
- _inherits(SelectRaw, _BaseInput);
71
-
72
- var _super = _createSuper(SelectRaw);
73
-
74
- function SelectRaw(props) {
75
- var _this;
76
-
77
- _classCallCheck(this, SelectRaw);
78
-
79
- _this = _super.call(this, props);
80
-
81
- _defineProperty(_assertThisInitialized(_this), "removeItemClick", function (item) {
82
- return function () {
83
- var newValues = _this.props.selectedValues.filter(function (sv) {
84
- return sv.value !== item.value;
85
- });
43
+ class SelectRaw extends _BaseInput.BaseInput {
44
+ constructor(props) {
45
+ super(props);
86
46
 
87
- _this.handleValid(newValues);
88
-
89
- _this.props.onSelectedValuesChange && _this.props.onSelectedValuesChange(newValues);
90
- };
47
+ _defineProperty(this, "removeItemClick", item => () => {
48
+ const newValues = this.props.selectedValues.filter(sv => sv.value !== item.value);
49
+ this.handleValid(newValues);
50
+ this.props.onSelectedValuesChange && this.props.onSelectedValuesChange(newValues);
91
51
  });
92
52
 
93
- var val = !props.value ? props.defaultEmpty ? '' : props.values && props.values.length > 0 ? props.values[0] : '' : props.value;
94
- _this.state = Object.assign(_this.state, {
53
+ const val = !props.value ? props.defaultEmpty ? '' : props.values && props.values.length > 0 ? props.values[0] : '' : props.value;
54
+ this.state = Object.assign(this.state, {
95
55
  value: val
96
56
  });
97
- _this.handleChangeCustom = _this.handleChangeCustom.bind(_assertThisInitialized(_this));
98
- return _this;
57
+ this.handleChangeCustom = this.handleChangeCustom.bind(this);
99
58
  }
100
59
 
101
- _createClass(SelectRaw, [{
102
- key: "componentDidMount",
103
- value: function componentDidMount() {
104
- this.props.multiple && this.handleValid(this.props.selectedValues);
105
- }
106
- }, {
107
- key: "componentDidUpdate",
108
- value: function componentDidUpdate(oldProps) {
109
- if (oldProps.value !== this.props.value || oldProps.validators !== this.props.validators || oldProps.customValidators !== this.props.customValidators || oldProps.required !== this.props.required || oldProps.selectedValues !== this.props.selectedValues) {
110
- if (this.props.multiple) {
111
- this.handleValid(this.props.selectedValues);
112
- } else {
113
- this.handleValueChange(this.props.value, true, [], this.props);
114
- }
115
- }
116
- }
117
- }, {
118
- key: "render",
119
- value: function render() {
120
- var _this2 = this;
121
-
122
- var finalValues = this.props.multiple ? this.props.values.filter(function (item) {
123
- return _this2.props.selectedValues.findIndex(function (t) {
124
- return t.value === item.value;
125
- }) < 0;
126
- }) : this.props.values;
127
- return /*#__PURE__*/React.createElement(_InputGroup.default, {
128
- title: this.props.title,
129
- tooltip: this.props.tooltip
130
- }, /*#__PURE__*/React.createElement("div", {
131
- className: 'input__base select-input ' + this.getValidationClass() + ' ' + (this.props.className ? this.props.className : '') + ' ' + (this.props.readOnly ? 'readonly' : '') + ' ' + (this.props.multiple ? 'multiple' : ''),
132
- ref: this.containerRef
133
- }, this.renderSelectedValues(), finalValues.length > 0 && (this.props.multiple && !this.props.readOnly || !this.props.multiple) && /*#__PURE__*/React.createElement("div", {
134
- className: "select-input__select__wrapper"
135
- }, !this.props.multiple && !this.props.readOnly || this.props.multiple ? /*#__PURE__*/React.createElement("select", _extends({}, this.props.id && {
136
- id: this.props.id
137
- }, {
138
- ref: this.inputRef,
139
- disabled: this.getDisabled(),
140
- required: this.props.required,
141
- onChange: this.handleChangeCustom,
142
- value: this.state.value,
143
- className: 'select-input__select ' + (this.state.value !== '' || this.props.selectedValues && this.props.selectedValues.length > 0 ? 'filled' : ''),
144
- onBlur: this.handleBlur,
145
- onFocus: this.handleFocus,
146
- tabIndex: 0
147
- }), this.props.defaultEmpty && /*#__PURE__*/React.createElement("option", {
148
- key: -1,
149
- disabled: true,
150
- value: "",
151
- style: {
152
- display: 'none'
153
- }
154
- }), finalValues.map(function (value, index) {
155
- return /*#__PURE__*/React.createElement("option", {
156
- key: index,
157
- value: value.value
158
- }, value.label ? value.label : value.value);
159
- })) : /*#__PURE__*/React.createElement("span", {
160
- className: 'select-input__select ' + (this.state.value !== '' || this.props.selectedValues && this.props.selectedValues.length > 0 ? 'filled' : '')
161
- }, this.renderReadonly()), /*#__PURE__*/React.createElement("span", {
162
- className: "highlight"
163
- }), /*#__PURE__*/React.createElement("span", {
164
- className: "bar"
165
- }), this.renderDefaultValidation(), this.props.label && finalValues.length > 0 && /*#__PURE__*/React.createElement("label", null, this.renderLabel()))));
166
- }
167
- }, {
168
- key: "handleValueChange",
169
- value: function handleValueChange(value) {
170
- var isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
171
- var errors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
172
- var props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props;
173
- var initializing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
60
+ componentDidMount() {
61
+ this.props.multiple && this.handleValid(this.props.selectedValues);
62
+ }
174
63
 
175
- if (!this.props.multiple) {
176
- return _get(_getPrototypeOf(SelectRaw.prototype), "handleValueChange", this).call(this, value, isValid, errors, props, initializing);
177
- } else if (!initializing) {
64
+ componentDidUpdate(oldProps) {
65
+ if (oldProps.value !== this.props.value || oldProps.validators !== this.props.validators || oldProps.customValidators !== this.props.customValidators || oldProps.required !== this.props.required || oldProps.selectedValues !== this.props.selectedValues) {
66
+ if (this.props.multiple) {
178
67
  this.handleValid(this.props.selectedValues);
68
+ } else {
69
+ this.handleValueChange(this.props.value, true, [], this.props);
179
70
  }
180
-
181
- return {
182
- isValid: true,
183
- errors: []
184
- };
185
71
  }
186
- }, {
187
- key: "handleBlur",
188
- value: function handleBlur(e) {
189
- this.props.onBlur && this.props.onBlur();
190
- var state = {
191
- focused: false
192
- };
193
-
194
- if (!this.state.touched && this.props.touchOn === 'blur') {
195
- state = Object.assign(state, {
196
- touched: true
197
- });
72
+ }
198
73
 
199
- if (!this.props.multiple) {
200
- this.handleValueChange(this.state.value);
201
- } else {
202
- this.handleValid(this.props.selectedValues);
203
- }
74
+ render() {
75
+ const finalValues = this.props.multiple ? this.props.values.filter(item => this.props.selectedValues.findIndex(t => t.value === item.value) < 0) : this.props.values;
76
+ return /*#__PURE__*/React.createElement(_InputGroup.default, {
77
+ title: this.props.title,
78
+ tooltip: this.props.tooltip
79
+ }, /*#__PURE__*/React.createElement("div", {
80
+ className: 'input__base select-input ' + this.getValidationClass() + ' ' + (this.props.className ? this.props.className : '') + ' ' + (this.props.readOnly ? 'readonly' : '') + ' ' + (this.props.multiple ? 'multiple' : ''),
81
+ ref: this.containerRef
82
+ }, this.renderSelectedValues(), finalValues.length > 0 && (this.props.multiple && !this.props.readOnly || !this.props.multiple) && /*#__PURE__*/React.createElement("div", {
83
+ className: "select-input__select__wrapper"
84
+ }, !this.props.multiple && !this.props.readOnly || this.props.multiple ? /*#__PURE__*/React.createElement("select", _extends({}, this.props.id && {
85
+ id: this.props.id
86
+ }, {
87
+ ref: this.inputRef,
88
+ disabled: this.getDisabled(),
89
+ required: this.props.required,
90
+ onChange: this.handleChangeCustom,
91
+ value: this.state.value,
92
+ className: 'select-input__select ' + (this.state.value !== '' || this.props.selectedValues && this.props.selectedValues.length > 0 ? 'filled' : ''),
93
+ onBlur: this.handleBlur,
94
+ onFocus: this.handleFocus,
95
+ tabIndex: 0
96
+ }), this.props.defaultEmpty && /*#__PURE__*/React.createElement("option", {
97
+ key: -1,
98
+ disabled: true,
99
+ value: "",
100
+ style: {
101
+ display: 'none'
204
102
  }
103
+ }), finalValues.map((value, index) => /*#__PURE__*/React.createElement("option", {
104
+ key: index,
105
+ value: value.value
106
+ }, value.label ? value.label : value.value))) : /*#__PURE__*/React.createElement("span", {
107
+ className: 'select-input__select ' + (this.state.value !== '' || this.props.selectedValues && this.props.selectedValues.length > 0 ? 'filled' : '')
108
+ }, this.renderReadonly()), /*#__PURE__*/React.createElement("span", {
109
+ className: "highlight"
110
+ }), /*#__PURE__*/React.createElement("span", {
111
+ className: "bar"
112
+ }), this.renderDefaultValidation(), this.props.label && finalValues.length > 0 && /*#__PURE__*/React.createElement("label", null, this.renderLabel()))));
113
+ }
205
114
 
206
- this.setState(state);
115
+ handleValueChange(value) {
116
+ let isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
117
+ let errors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
118
+ let props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props;
119
+ let initializing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
120
+
121
+ if (!this.props.multiple) {
122
+ return super.handleValueChange(value, isValid, errors, props, initializing);
123
+ } else if (!initializing) {
124
+ this.handleValid(this.props.selectedValues);
207
125
  }
208
- }, {
209
- key: "handleFocus",
210
- value: function handleFocus(e) {
211
- this.props.onFocus && this.props.onFocus(e);
212
- var state = {
213
- focused: true
214
- };
215
-
216
- if (!this.state.touched && this.props.touchOn === 'focus') {
217
- state = Object.assign(state, {
218
- touched: true
219
- });
220
126
 
221
- if (!this.props.multiple) {
222
- this.handleValueChange(this.state.value);
223
- } else {
224
- this.handleValid(this.props.selectedValues);
225
- }
226
- }
127
+ return {
128
+ isValid: true,
129
+ errors: []
130
+ };
131
+ }
132
+
133
+ handleBlur(e) {
134
+ this.props.onBlur && this.props.onBlur();
135
+ let state = {
136
+ focused: false
137
+ };
138
+
139
+ if (!this.state.touched && this.props.touchOn === 'blur') {
140
+ state = Object.assign(state, {
141
+ touched: true
142
+ });
227
143
 
228
- this.setState(state);
144
+ if (!this.props.multiple) {
145
+ this.handleValueChange(this.state.value);
146
+ } else {
147
+ this.handleValid(this.props.selectedValues);
148
+ }
229
149
  }
230
- }, {
231
- key: "handleChangeCustom",
232
- value: function handleChangeCustom(event) {
233
- if (this.props.multiple) {
234
- var value = event.target.value;
235
- var val = this.props.values.filter(function (item) {
236
- return item.value === value;
237
- })[0];
238
-
239
- if (!val) {
240
- if (!isNaN(Number(value))) {
241
- var valNumber = Number(value);
242
- val = this.props.values.filter(function (item) {
243
- return item.value === valNumber;
244
- })[0];
245
- }
246
- }
247
150
 
248
- var _newValues = this.props.selectedValues.concat(val);
151
+ this.setState(state);
152
+ }
249
153
 
250
- if (val) {
251
- this.props.onSelectedValuesChange && this.props.onSelectedValuesChange(_newValues);
252
- this.handleValid(_newValues);
253
- this.setState({
254
- value: ''
255
- });
256
- }
154
+ handleFocus(e) {
155
+ this.props.onFocus && this.props.onFocus(e);
156
+ let state = {
157
+ focused: true
158
+ };
159
+
160
+ if (!this.state.touched && this.props.touchOn === 'focus') {
161
+ state = Object.assign(state, {
162
+ touched: true
163
+ });
164
+
165
+ if (!this.props.multiple) {
166
+ this.handleValueChange(this.state.value);
257
167
  } else {
258
- this.handleChange(event);
168
+ this.handleValid(this.props.selectedValues);
259
169
  }
260
170
  }
261
- }, {
262
- key: "handleValid",
263
- value: function handleValid(newValues) {
264
- var _this3 = this;
265
-
266
- var isValid = true;
267
- var errors = [];
268
-
269
- if (this.props.required) {
270
- if (newValues.length === 0) {
271
- isValid = false;
272
- errors.push(this.getTranslations(_BaseInput2.defaultBaseTranslations).required);
171
+
172
+ this.setState(state);
173
+ }
174
+
175
+ handleChangeCustom(event) {
176
+ if (this.props.multiple) {
177
+ let value = event.target.value;
178
+ let val = this.props.values.filter(item => item.value === value)[0];
179
+
180
+ if (!val) {
181
+ if (!isNaN(Number(value))) {
182
+ let valNumber = Number(value);
183
+ val = this.props.values.filter(item => item.value === valNumber)[0];
273
184
  }
274
185
  }
275
186
 
276
- if (this.props.customValidators) {
277
- this.props.customValidators.forEach(function (customValidator) {
278
- var _this3$state;
187
+ let newValues = this.props.selectedValues.concat(val);
279
188
 
280
- var validInner = false;
281
- validInner = customValidator.Validate((_this3$state = _this3.state) === null || _this3$state === void 0 ? void 0 : _this3$state.value, _this3.props.required, function (error) {
282
- return errors.push(error);
283
- });
284
-
285
- if (isValid && !validInner) {
286
- isValid = validInner;
287
- }
189
+ if (val) {
190
+ this.props.onSelectedValuesChange && this.props.onSelectedValuesChange(newValues);
191
+ this.handleValid(newValues);
192
+ this.setState({
193
+ value: ''
288
194
  });
289
195
  }
196
+ } else {
197
+ this.handleChange(event);
198
+ }
199
+ }
290
200
 
291
- if (isValid) {
292
- this.setValid();
293
- } else {
294
- this.setInvalid(errors);
201
+ handleValid(newValues) {
202
+ let isValid = true;
203
+ let errors = [];
204
+
205
+ if (this.props.required) {
206
+ if (newValues.length === 0) {
207
+ isValid = false;
208
+ errors.push(this.getTranslations(_BaseInput.defaultBaseTranslations).required);
295
209
  }
296
210
  }
297
- }, {
298
- key: "renderReadonly",
299
- value: function renderReadonly() {
300
- var _this4 = this;
301
-
302
- var value = this.props.values.filter(function (item) {
303
- return item.value.toString() === _this4.state.value;
304
- })[0];
305
- return value ? value.label ? value.label : value.value : '';
211
+
212
+ if (this.props.customValidators) {
213
+ this.props.customValidators.forEach(customValidator => {
214
+ var _this$state;
215
+
216
+ let validInner = false;
217
+ validInner = customValidator.Validate((_this$state = this.state) === null || _this$state === void 0 ? void 0 : _this$state.value, this.props.required, error => errors.push(error));
218
+
219
+ if (isValid && !validInner) {
220
+ isValid = validInner;
221
+ }
222
+ });
306
223
  }
307
- }, {
308
- key: "renderSelectedValues",
309
- value: function renderSelectedValues() {
310
- var _this5 = this;
311
-
312
- return this.props.multiple ? this.props.selectedValues.length > 0 ? /*#__PURE__*/React.createElement("div", {
313
- className: "select-input__selectedValue__wrapper"
314
- }, this.props.selectedValues.map(function (item, index) {
315
- return /*#__PURE__*/React.createElement("div", {
316
- className: "select-input__selectedValue",
317
- key: index
318
- }, item.label ? item.label : item.value, !_this5.props.readOnly && /*#__PURE__*/React.createElement(_Button.Button, {
319
- disabled: item.forceSelected,
320
- circular: true,
321
- blank: true,
322
- onClick: _this5.removeItemClick(item),
323
- className: "ml-1 transform-rotate--45 line-height--0 p-0"
324
- }, /*#__PURE__*/React.createElement(PlusIcon, null)));
325
- })) : this.props.readOnly && /*#__PURE__*/React.createElement("div", {
326
- className: "select-input__selectedValue__wrapper"
327
- }, /*#__PURE__*/React.createElement("div", {
328
- className: "select-input__selectedValue"
329
- }, this.props.readonlyEmptyPlaceholder)) : null;
224
+
225
+ if (isValid) {
226
+ this.setValid();
227
+ } else {
228
+ this.setInvalid(errors);
330
229
  }
331
- }]);
230
+ }
231
+
232
+ renderReadonly() {
233
+ const value = this.props.values.filter(item => item.value.toString() === this.state.value)[0];
234
+ return value ? value.label ? value.label : value.value : '';
235
+ }
236
+
237
+ renderSelectedValues() {
238
+ return this.props.multiple ? this.props.selectedValues.length > 0 ? /*#__PURE__*/React.createElement("div", {
239
+ className: "select-input__selectedValue__wrapper"
240
+ }, this.props.selectedValues.map((item, index) => /*#__PURE__*/React.createElement("div", {
241
+ className: "select-input__selectedValue",
242
+ key: index
243
+ }, item.label ? item.label : item.value, !this.props.readOnly && /*#__PURE__*/React.createElement(_Button.Button, {
244
+ disabled: item.forceSelected,
245
+ circular: true,
246
+ blank: true,
247
+ onClick: this.removeItemClick(item),
248
+ className: "ml-1 transform-rotate--45 line-height--0 p-0"
249
+ }, /*#__PURE__*/React.createElement(PlusIcon, null))))) : this.props.readOnly && /*#__PURE__*/React.createElement("div", {
250
+ className: "select-input__selectedValue__wrapper"
251
+ }, /*#__PURE__*/React.createElement("div", {
252
+ className: "select-input__selectedValue"
253
+ }, this.props.readonlyEmptyPlaceholder)) : null;
254
+ }
332
255
 
333
- return SelectRaw;
334
- }(_BaseInput2.BaseInput);
256
+ }
335
257
 
336
258
  exports.SelectRaw = SelectRaw;
337
259
 
338
- _defineProperty(SelectRaw, "defaultProps", Object.assign({}, _BaseInput2.BaseInput.defaultProps, {
260
+ _defineProperty(SelectRaw, "defaultProps", Object.assign({}, _BaseInput.BaseInput.defaultProps, {
339
261
  defaultEmpty: true,
340
262
  multiple: false,
341
263
  readOnly: false,
342
264
  readonlyEmptyPlaceholder: 'N/A'
343
265
  }));
344
266
 
345
- var Select = (0, _withThemeContext.withThemeContext)((0, _withFormContext.withFormContext)(SelectRaw), 'select');
267
+ const Select = (0, _withThemeContext.withThemeContext)((0, _withFormContext.withFormContext)(SelectRaw), 'select');
346
268
  exports.Select = Select;
347
269
  var _default = Select;
348
270
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/components/select/Select.tsx"],"names":["PlusIcon","SelectRaw","props","item","newValues","selectedValues","filter","sv","value","handleValid","onSelectedValuesChange","val","defaultEmpty","values","length","state","Object","assign","handleChangeCustom","bind","multiple","oldProps","validators","customValidators","required","handleValueChange","finalValues","findIndex","t","title","tooltip","getValidationClass","className","readOnly","containerRef","renderSelectedValues","id","inputRef","getDisabled","handleBlur","handleFocus","display","map","index","label","renderReadonly","renderDefaultValidation","renderLabel","isValid","errors","initializing","e","onBlur","focused","touched","touchOn","setState","onFocus","event","target","isNaN","Number","valNumber","concat","handleChange","push","getTranslations","defaultBaseTranslations","forEach","customValidator","validInner","Validate","error","setValid","setInvalid","toString","forceSelected","removeItemClick","readonlyEmptyPlaceholder","BaseInput","defaultProps","Select"],"mappings":"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","sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n ValidationError,\r\n defaultBaseTranslations,\r\n} from '../base/input/BaseInput';\r\nimport { Button } from '../button/Button';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface SelectValue {\r\n value: number | string;\r\n label?: string;\r\n forceSelected?: boolean;\r\n}\r\n\r\nexport interface SelectProps extends BaseInputProps<HTMLSelectElement> {\r\n values?: SelectValue[];\r\n defaultEmpty?: boolean;\r\n multiple?: boolean;\r\n selectedValues?: SelectValue[];\r\n onSelectedValuesChange?: (newValues: SelectValue[]) => void;\r\n inputRef?: (input: HTMLSelectElement) => void;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n}\r\n\r\nexport interface SelectState extends BaseInputState {}\r\n\r\nexport class SelectRaw extends BaseInput<\r\n SelectProps,\r\n SelectState,\r\n HTMLSelectElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n defaultEmpty: true,\r\n multiple: false,\r\n readOnly: false,\r\n readonlyEmptyPlaceholder: 'N/A',\r\n });\r\n\r\n constructor(props: SelectProps) {\r\n super(props);\r\n const val = !props.value\r\n ? props.defaultEmpty\r\n ? ''\r\n : props.values && props.values.length > 0\r\n ? props.values[0]\r\n : ''\r\n : props.value;\r\n this.state = Object.assign(this.state, { value: val });\r\n this.handleChangeCustom = this.handleChangeCustom.bind(this);\r\n }\r\n\r\n public componentDidMount() {\r\n this.props.multiple && this.handleValid(this.props.selectedValues);\r\n }\r\n\r\n public componentDidUpdate(oldProps: SelectProps) {\r\n if (\r\n oldProps.value !== this.props.value ||\r\n oldProps.validators !== this.props.validators ||\r\n oldProps.customValidators !== this.props.customValidators ||\r\n oldProps.required !== this.props.required ||\r\n oldProps.selectedValues !== this.props.selectedValues\r\n ) {\r\n if (this.props.multiple) {\r\n this.handleValid(this.props.selectedValues);\r\n } else {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n const finalValues = this.props.multiple\r\n ? this.props.values.filter(\r\n item =>\r\n this.props.selectedValues.findIndex(t => t.value === item.value) < 0\r\n )\r\n : this.props.values;\r\n return (\r\n <InputGroup title={this.props.title} tooltip={this.props.tooltip}>\r\n <div\r\n className={\r\n 'input__base select-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n (this.props.readOnly ? 'readonly' : '') +\r\n ' ' +\r\n (this.props.multiple ? 'multiple' : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.renderSelectedValues()}\r\n {finalValues.length > 0 &&\r\n ((this.props.multiple && !this.props.readOnly) ||\r\n !this.props.multiple) && (\r\n <div className=\"select-input__select__wrapper\">\r\n {(!this.props.multiple && !this.props.readOnly) ||\r\n this.props.multiple ? (\r\n <select\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n onChange={this.handleChangeCustom}\r\n value={this.state.value}\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n tabIndex={0}\r\n >\r\n {this.props.defaultEmpty && (\r\n <option\r\n key={-1}\r\n disabled={true}\r\n value=\"\"\r\n style={{ display: 'none' }}\r\n />\r\n )}\r\n {finalValues.map((value, index) => (\r\n <option key={index} value={value.value}>\r\n {value.label ? value.label : value.value}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n >\r\n {this.renderReadonly()}\r\n </span>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && finalValues.length > 0 && (\r\n <label>{this.renderLabel()}</label>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n protected handleValueChange(\r\n value: string,\r\n isValid: boolean = true,\r\n errors: ValidationError[] = [],\r\n props: SelectProps = this.props,\r\n initializing: boolean = false\r\n ) {\r\n if (!this.props.multiple) {\r\n return super.handleValueChange(\r\n value,\r\n isValid,\r\n errors,\r\n props,\r\n initializing\r\n );\r\n } else if (!initializing) {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n return {\r\n isValid: true,\r\n errors: [],\r\n };\r\n }\r\n\r\n protected handleBlur(e: React.FocusEvent<HTMLSelectElement>) {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLSelectElement>) {\r\n this.props.onFocus && this.props.onFocus(e);\r\n let state = { focused: true };\r\n if (!this.state.touched && this.props.touchOn === 'focus') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n private handleChangeCustom(event: React.ChangeEvent<HTMLSelectElement>) {\r\n if (this.props.multiple) {\r\n let value = event.target.value;\r\n let val = this.props.values.filter(item => item.value === value)[0];\r\n if (!val) {\r\n if (!isNaN(Number(value))) {\r\n let valNumber = Number(value);\r\n val = this.props.values.filter(item => item.value === valNumber)[0];\r\n }\r\n }\r\n let newValues = this.props.selectedValues.concat(val);\r\n if (val) {\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n this.handleValid(newValues);\r\n this.setState({ value: '' });\r\n }\r\n } else {\r\n this.handleChange(event);\r\n }\r\n }\r\n\r\n private handleValid(newValues: SelectValue[]) {\r\n let isValid = true;\r\n let errors: ValidationError[] = [];\r\n if (this.props.required) {\r\n if (newValues.length === 0) {\r\n isValid = false;\r\n errors.push(this.getTranslations(defaultBaseTranslations).required);\r\n }\r\n }\r\n if (this.props.customValidators) {\r\n this.props.customValidators.forEach(customValidator => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n this.state?.value,\r\n this.props.required,\r\n error => errors.push(error)\r\n );\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n if (isValid) {\r\n this.setValid();\r\n } else {\r\n this.setInvalid(errors);\r\n }\r\n }\r\n\r\n private renderReadonly() {\r\n const value = this.props.values.filter(\r\n item => item.value.toString() === this.state.value\r\n )[0];\r\n return value ? (value.label ? value.label : value.value) : '';\r\n }\r\n\r\n private renderSelectedValues() {\r\n return this.props.multiple ? (\r\n this.props.selectedValues.length > 0 ? (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n {this.props.selectedValues.map((item, index) => (\r\n <div className=\"select-input__selectedValue\" key={index}>\r\n {item.label ? item.label : item.value}\r\n {!this.props.readOnly && (\r\n <Button\r\n disabled={item.forceSelected}\r\n circular={true}\r\n blank={true}\r\n onClick={this.removeItemClick(item)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n <div className=\"select-input__selectedValue\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )\r\n ) : null;\r\n }\r\n\r\n private removeItemClick = (item: SelectValue) => () => {\r\n const newValues = this.props.selectedValues.filter(\r\n sv => sv.value !== item.value\r\n );\r\n this.handleValid(newValues);\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n };\r\n}\r\n\r\nexport const Select = withThemeContext<\r\n SelectProps,\r\n InstanceType<typeof SelectRaw>\r\n>(withFormContext<SelectProps>(SelectRaw), 'select');\r\n\r\nexport default Select;\r\n"],"file":"Select.js"}
1
+ {"version":3,"file":"Select.js","names":["PlusIcon","SelectRaw","BaseInput","constructor","props","item","newValues","selectedValues","filter","sv","value","handleValid","onSelectedValuesChange","val","defaultEmpty","values","length","state","Object","assign","handleChangeCustom","bind","componentDidMount","multiple","componentDidUpdate","oldProps","validators","customValidators","required","handleValueChange","render","finalValues","findIndex","t","title","tooltip","getValidationClass","className","readOnly","containerRef","renderSelectedValues","id","inputRef","getDisabled","handleBlur","handleFocus","display","map","index","label","renderReadonly","renderDefaultValidation","renderLabel","isValid","errors","initializing","e","onBlur","focused","touched","touchOn","setState","onFocus","event","target","isNaN","Number","valNumber","concat","handleChange","push","getTranslations","defaultBaseTranslations","forEach","customValidator","validInner","Validate","error","setValid","setInvalid","toString","forceSelected","removeItemClick","readonlyEmptyPlaceholder","defaultProps","Select","withThemeContext","withFormContext"],"sources":["../../../src/lib/components/select/Select.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n ValidationError,\r\n defaultBaseTranslations,\r\n} from '../base/input/BaseInput';\r\nimport { Button } from '../button/Button';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface SelectValue {\r\n value: number | string;\r\n label?: string;\r\n forceSelected?: boolean;\r\n}\r\n\r\nexport interface SelectProps extends BaseInputProps<HTMLSelectElement> {\r\n values?: SelectValue[];\r\n defaultEmpty?: boolean;\r\n multiple?: boolean;\r\n selectedValues?: SelectValue[];\r\n onSelectedValuesChange?: (newValues: SelectValue[]) => void;\r\n inputRef?: (input: HTMLSelectElement) => void;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n}\r\n\r\nexport interface SelectState extends BaseInputState {}\r\n\r\nexport class SelectRaw extends BaseInput<\r\n SelectProps,\r\n SelectState,\r\n HTMLSelectElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n defaultEmpty: true,\r\n multiple: false,\r\n readOnly: false,\r\n readonlyEmptyPlaceholder: 'N/A',\r\n });\r\n\r\n constructor(props: SelectProps) {\r\n super(props);\r\n const val = !props.value\r\n ? props.defaultEmpty\r\n ? ''\r\n : props.values && props.values.length > 0\r\n ? props.values[0]\r\n : ''\r\n : props.value;\r\n this.state = Object.assign(this.state, { value: val });\r\n this.handleChangeCustom = this.handleChangeCustom.bind(this);\r\n }\r\n\r\n public componentDidMount() {\r\n this.props.multiple && this.handleValid(this.props.selectedValues);\r\n }\r\n\r\n public componentDidUpdate(oldProps: SelectProps) {\r\n if (\r\n oldProps.value !== this.props.value ||\r\n oldProps.validators !== this.props.validators ||\r\n oldProps.customValidators !== this.props.customValidators ||\r\n oldProps.required !== this.props.required ||\r\n oldProps.selectedValues !== this.props.selectedValues\r\n ) {\r\n if (this.props.multiple) {\r\n this.handleValid(this.props.selectedValues);\r\n } else {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n const finalValues = this.props.multiple\r\n ? this.props.values.filter(\r\n item =>\r\n this.props.selectedValues.findIndex(t => t.value === item.value) < 0\r\n )\r\n : this.props.values;\r\n return (\r\n <InputGroup title={this.props.title} tooltip={this.props.tooltip}>\r\n <div\r\n className={\r\n 'input__base select-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n (this.props.readOnly ? 'readonly' : '') +\r\n ' ' +\r\n (this.props.multiple ? 'multiple' : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.renderSelectedValues()}\r\n {finalValues.length > 0 &&\r\n ((this.props.multiple && !this.props.readOnly) ||\r\n !this.props.multiple) && (\r\n <div className=\"select-input__select__wrapper\">\r\n {(!this.props.multiple && !this.props.readOnly) ||\r\n this.props.multiple ? (\r\n <select\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n onChange={this.handleChangeCustom}\r\n value={this.state.value}\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n tabIndex={0}\r\n >\r\n {this.props.defaultEmpty && (\r\n <option\r\n key={-1}\r\n disabled={true}\r\n value=\"\"\r\n style={{ display: 'none' }}\r\n />\r\n )}\r\n {finalValues.map((value, index) => (\r\n <option key={index} value={value.value}>\r\n {value.label ? value.label : value.value}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n >\r\n {this.renderReadonly()}\r\n </span>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && finalValues.length > 0 && (\r\n <label>{this.renderLabel()}</label>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n protected handleValueChange(\r\n value: string,\r\n isValid: boolean = true,\r\n errors: ValidationError[] = [],\r\n props: SelectProps = this.props,\r\n initializing: boolean = false\r\n ) {\r\n if (!this.props.multiple) {\r\n return super.handleValueChange(\r\n value,\r\n isValid,\r\n errors,\r\n props,\r\n initializing\r\n );\r\n } else if (!initializing) {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n return {\r\n isValid: true,\r\n errors: [],\r\n };\r\n }\r\n\r\n protected handleBlur(e: React.FocusEvent<HTMLSelectElement>) {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLSelectElement>) {\r\n this.props.onFocus && this.props.onFocus(e);\r\n let state = { focused: true };\r\n if (!this.state.touched && this.props.touchOn === 'focus') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n private handleChangeCustom(event: React.ChangeEvent<HTMLSelectElement>) {\r\n if (this.props.multiple) {\r\n let value = event.target.value;\r\n let val = this.props.values.filter(item => item.value === value)[0];\r\n if (!val) {\r\n if (!isNaN(Number(value))) {\r\n let valNumber = Number(value);\r\n val = this.props.values.filter(item => item.value === valNumber)[0];\r\n }\r\n }\r\n let newValues = this.props.selectedValues.concat(val);\r\n if (val) {\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n this.handleValid(newValues);\r\n this.setState({ value: '' });\r\n }\r\n } else {\r\n this.handleChange(event);\r\n }\r\n }\r\n\r\n private handleValid(newValues: SelectValue[]) {\r\n let isValid = true;\r\n let errors: ValidationError[] = [];\r\n if (this.props.required) {\r\n if (newValues.length === 0) {\r\n isValid = false;\r\n errors.push(this.getTranslations(defaultBaseTranslations).required);\r\n }\r\n }\r\n if (this.props.customValidators) {\r\n this.props.customValidators.forEach(customValidator => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n this.state?.value,\r\n this.props.required,\r\n error => errors.push(error)\r\n );\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n if (isValid) {\r\n this.setValid();\r\n } else {\r\n this.setInvalid(errors);\r\n }\r\n }\r\n\r\n private renderReadonly() {\r\n const value = this.props.values.filter(\r\n item => item.value.toString() === this.state.value\r\n )[0];\r\n return value ? (value.label ? value.label : value.value) : '';\r\n }\r\n\r\n private renderSelectedValues() {\r\n return this.props.multiple ? (\r\n this.props.selectedValues.length > 0 ? (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n {this.props.selectedValues.map((item, index) => (\r\n <div className=\"select-input__selectedValue\" key={index}>\r\n {item.label ? item.label : item.value}\r\n {!this.props.readOnly && (\r\n <Button\r\n disabled={item.forceSelected}\r\n circular={true}\r\n blank={true}\r\n onClick={this.removeItemClick(item)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n <div className=\"select-input__selectedValue\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )\r\n ) : null;\r\n }\r\n\r\n private removeItemClick = (item: SelectValue) => () => {\r\n const newValues = this.props.selectedValues.filter(\r\n sv => sv.value !== item.value\r\n );\r\n this.handleValid(newValues);\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n };\r\n}\r\n\r\nexport const Select = withThemeContext<\r\n SelectProps,\r\n InstanceType<typeof SelectRaw>\r\n>(withFormContext<SelectProps>(SelectRaw), 'select');\r\n\r\nexport default Select;\r\n"],"mappings":"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"}