@uncinc/uncinc-react-kitchen-sink 2.7.2 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,6 +8,12 @@ Everything but the kitchen sink!
8
8
  yarn add @uncinc/uncinc-react-kitchen-sink
9
9
  ```
10
10
 
11
+ To be able to run githooks:
12
+
13
+ ```bash
14
+ brew install gitleaks
15
+ ```
16
+
11
17
  ## Usage
12
18
 
13
19
  You can import the components in your own React project.
@@ -1,4 +1,4 @@
1
- export function Button({ href, dispatch, className, children, primary, inverted, language, enableLoader, loading, htmlType, ...props }: {
1
+ export function Button({ href, dispatch, className, children, primary, inverted, language, enableLoader, loading, htmlType, target, ...props }: {
2
2
  [x: string]: any;
3
3
  href: any;
4
4
  dispatch: any;
@@ -10,6 +10,7 @@ export function Button({ href, dispatch, className, children, primary, inverted,
10
10
  enableLoader: any;
11
11
  loading: any;
12
12
  htmlType: any;
13
+ target: any;
13
14
  }): React.JSX.Element;
14
15
  export namespace Button {
15
16
  namespace defaultProps {
@@ -19,6 +20,7 @@ export namespace Button {
19
20
  let href: null;
20
21
  let enableLoader: boolean;
21
22
  let htmlType: string;
23
+ let target: string;
22
24
  }
23
25
  namespace propTypes {
24
26
  let href_1: PropTypes.Requireable<string>;
@@ -33,6 +35,8 @@ export namespace Button {
33
35
  export { enableLoader_1 as enableLoader };
34
36
  let htmlType_1: PropTypes.Requireable<string>;
35
37
  export { htmlType_1 as htmlType };
38
+ let target_1: PropTypes.Requireable<string>;
39
+ export { target_1 as target };
36
40
  }
37
41
  }
38
42
  declare const _default: (props: any) => React.JSX.Element;
@@ -12,7 +12,7 @@ var _gtm = _interopRequireDefault(require("../../helpers/gtm"));
12
12
  var _link = require("../../helpers/link");
13
13
  var _withMapping = _interopRequireDefault(require("../../Context/withMapping"));
14
14
  require("./style.scss");
15
- var _excluded = ["href", "dispatch", "className", "children", "primary", "inverted", "language", "enableLoader", "loading", "htmlType"];
15
+ var _excluded = ["href", "dispatch", "className", "children", "primary", "inverted", "language", "enableLoader", "loading", "htmlType", "target"];
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  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); }
18
18
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
@@ -28,6 +28,7 @@ var Button = function Button(_ref) {
28
28
  enableLoader = _ref.enableLoader,
29
29
  loading = _ref.loading,
30
30
  htmlType = _ref.htmlType,
31
+ target = _ref.target,
31
32
  props = _objectWithoutProperties(_ref, _excluded);
32
33
  var classes = (0, _classnames.default)('Button', className, {
33
34
  'Button--primary': primary,
@@ -67,7 +68,8 @@ var Button = function Button(_ref) {
67
68
  onClick: onClick
68
69
  }), children) : /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, _extends({
69
70
  to: href,
70
- className: classes
71
+ className: classes,
72
+ target: target
71
73
  }, props, {
72
74
  onClick: onClick
73
75
  }), children);
@@ -79,7 +81,8 @@ Button.defaultProps = {
79
81
  disabled: false,
80
82
  href: null,
81
83
  enableLoader: false,
82
- htmlType: 'button'
84
+ htmlType: 'button',
85
+ target: '_self'
83
86
  };
84
87
  Button.propTypes = {
85
88
  href: _propTypes.default.string,
@@ -87,7 +90,8 @@ Button.propTypes = {
87
90
  disabled: _propTypes.default.bool,
88
91
  inverted: _propTypes.default.bool,
89
92
  enableLoader: _propTypes.default.bool,
90
- htmlType: _propTypes.default.oneOf(['button', 'submit', 'reset'])
93
+ htmlType: _propTypes.default.oneOf(['button', 'submit', 'reset']),
94
+ target: _propTypes.default.oneOf(['_self', '_blank', '_parent', '_top'])
91
95
  };
92
96
  var _default = (0, _withMapping.default)(Button);
93
97
  exports.default = _default;
@@ -48,7 +48,11 @@ function Checkbox(props) {
48
48
  // value is unchecked, we want to add it to the list of checked values.
49
49
  // And if the current value is checked, we want to filter it out of the
50
50
  // list of checked values.
51
+
51
52
  if (!checked) {
53
+ if (field.value === undefined || field.value === null) {
54
+ return [value];
55
+ }
52
56
  return [].concat(_toConsumableArray(field.value), [value]);
53
57
  }
54
58
  return field.value.filter(function (item) {
@@ -0,0 +1,40 @@
1
+ export default Picker;
2
+ declare function Picker(props: any): React.JSX.Element;
3
+ declare namespace Picker {
4
+ namespace defaultProps {
5
+ let title: string;
6
+ let placeholder: string;
7
+ let value: null;
8
+ let startDate: null;
9
+ let endDate: null;
10
+ let minDate: null;
11
+ let maxDate: null;
12
+ let className: string;
13
+ let disabled: boolean;
14
+ function onChange(): void;
15
+ }
16
+ namespace propTypes {
17
+ let title_1: PropTypes.Requireable<string>;
18
+ export { title_1 as title };
19
+ let placeholder_1: PropTypes.Requireable<string>;
20
+ export { placeholder_1 as placeholder };
21
+ let value_1: PropTypes.Requireable<Date>;
22
+ export { value_1 as value };
23
+ let startDate_1: PropTypes.Requireable<Date>;
24
+ export { startDate_1 as startDate };
25
+ let endDate_1: PropTypes.Requireable<Date>;
26
+ export { endDate_1 as endDate };
27
+ let minDate_1: PropTypes.Requireable<Date>;
28
+ export { minDate_1 as minDate };
29
+ let maxDate_1: PropTypes.Requireable<Date>;
30
+ export { maxDate_1 as maxDate };
31
+ let className_1: PropTypes.Requireable<string>;
32
+ export { className_1 as className };
33
+ let disabled_1: PropTypes.Requireable<boolean>;
34
+ export { disabled_1 as disabled };
35
+ let onChange_1: PropTypes.Requireable<(...args: any[]) => any>;
36
+ export { onChange_1 as onChange };
37
+ }
38
+ }
39
+ import React from 'react';
40
+ import PropTypes from 'prop-types';
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _reactDatepicker = _interopRequireDefault(require("react-datepicker"));
10
+ var _GenericFormElement = _interopRequireDefault(require("../../GenericFormElement"));
11
+ require("react-datepicker/dist/react-datepicker.css");
12
+ var _excluded = ["title", "placeholder", "value", "startDate", "endDate", "minDate", "maxDate", "className", "disabled", "onChange"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+ var Picker = function Picker(props) {
18
+ var title = props.title,
19
+ placeholder = props.placeholder,
20
+ value = props.value,
21
+ startDate = props.startDate,
22
+ endDate = props.endDate,
23
+ minDate = props.minDate,
24
+ maxDate = props.maxDate,
25
+ className = props.className,
26
+ disabled = props.disabled,
27
+ onChange = props.onChange,
28
+ restProps = _objectWithoutProperties(props, _excluded);
29
+ return /*#__PURE__*/_react.default.createElement(_GenericFormElement.default, {
30
+ className: className,
31
+ title: title
32
+ }, /*#__PURE__*/_react.default.createElement(_reactDatepicker.default, _extends({
33
+ selected: value,
34
+ onChange: onChange,
35
+ peekNextMonth: true,
36
+ showMonthDropdown: true,
37
+ showYearDropdown: true,
38
+ dropdownMode: "select",
39
+ startDate: startDate,
40
+ endDate: endDate,
41
+ minDate: minDate,
42
+ maxDate: maxDate,
43
+ disabled: disabled,
44
+ placeholderText: placeholder
45
+ }, restProps)));
46
+ };
47
+ Picker.defaultProps = {
48
+ title: '',
49
+ placeholder: '',
50
+ value: null,
51
+ startDate: null,
52
+ endDate: null,
53
+ minDate: null,
54
+ maxDate: null,
55
+ className: '',
56
+ disabled: false,
57
+ onChange: function onChange() {}
58
+ };
59
+ Picker.propTypes = {
60
+ title: _propTypes.default.string,
61
+ placeholder: _propTypes.default.string,
62
+ value: _propTypes.default.instanceOf(Date),
63
+ startDate: _propTypes.default.instanceOf(Date),
64
+ endDate: _propTypes.default.instanceOf(Date),
65
+ minDate: _propTypes.default.instanceOf(Date),
66
+ maxDate: _propTypes.default.instanceOf(Date),
67
+ className: _propTypes.default.string,
68
+ disabled: _propTypes.default.bool,
69
+ onChange: _propTypes.default.func
70
+ };
71
+ var _default = Picker;
72
+ exports.default = _default;
@@ -0,0 +1,62 @@
1
+ export default DatePickerRange;
2
+ declare function DatePickerRange(props: any): React.JSX.Element;
3
+ declare namespace DatePickerRange {
4
+ namespace defaultProps {
5
+ let isSinglePicker: boolean;
6
+ let title: string;
7
+ let startDateTitle: string;
8
+ let endDateTitle: string;
9
+ let required: boolean;
10
+ let description: string;
11
+ let startDatePlaceholder: string;
12
+ let endDatePlaceholder: string;
13
+ function validation(): void;
14
+ let defaultValue: never[];
15
+ let minDate: null;
16
+ let maxDate: null;
17
+ let startDateClassName: string;
18
+ let endDateClassName: string;
19
+ let wrapperClassName: string;
20
+ let disabled: boolean;
21
+ function onChange(): void;
22
+ }
23
+ namespace propTypes {
24
+ let isSinglePicker_1: PropTypes.Requireable<boolean>;
25
+ export { isSinglePicker_1 as isSinglePicker };
26
+ let title_1: PropTypes.Requireable<string>;
27
+ export { title_1 as title };
28
+ let startDateTitle_1: PropTypes.Requireable<string>;
29
+ export { startDateTitle_1 as startDateTitle };
30
+ let endDateTitle_1: PropTypes.Requireable<string>;
31
+ export { endDateTitle_1 as endDateTitle };
32
+ let required_1: PropTypes.Requireable<boolean>;
33
+ export { required_1 as required };
34
+ let description_1: PropTypes.Requireable<string>;
35
+ export { description_1 as description };
36
+ let startDatePlaceholder_1: PropTypes.Requireable<string>;
37
+ export { startDatePlaceholder_1 as startDatePlaceholder };
38
+ let endDatePlaceholder_1: PropTypes.Requireable<string>;
39
+ export { endDatePlaceholder_1 as endDatePlaceholder };
40
+ export let fieldName: PropTypes.Validator<string>;
41
+ let validation_1: PropTypes.Requireable<(...args: any[]) => any>;
42
+ export { validation_1 as validation };
43
+ let defaultValue_1: PropTypes.Requireable<(Date | null | undefined)[]>;
44
+ export { defaultValue_1 as defaultValue };
45
+ let minDate_1: PropTypes.Requireable<Date>;
46
+ export { minDate_1 as minDate };
47
+ let maxDate_1: PropTypes.Requireable<Date>;
48
+ export { maxDate_1 as maxDate };
49
+ let startDateClassName_1: PropTypes.Requireable<string>;
50
+ export { startDateClassName_1 as startDateClassName };
51
+ let endDateClassName_1: PropTypes.Requireable<string>;
52
+ export { endDateClassName_1 as endDateClassName };
53
+ let wrapperClassName_1: PropTypes.Requireable<string>;
54
+ export { wrapperClassName_1 as wrapperClassName };
55
+ let disabled_1: PropTypes.Requireable<boolean>;
56
+ export { disabled_1 as disabled };
57
+ let onChange_1: PropTypes.Requireable<(...args: any[]) => any>;
58
+ export { onChange_1 as onChange };
59
+ }
60
+ }
61
+ import React from 'react';
62
+ import PropTypes from 'prop-types';
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _formik = require("formik");
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _reactI18next = require("react-i18next");
12
+ var _FormikWrapper = require("../FormikWrapper");
13
+ var _GenericFormElement = _interopRequireDefault(require("../GenericFormElement"));
14
+ var _Picker = _interopRequireDefault(require("./Picker"));
15
+ var _excluded = ["isSinglePicker", "title", "startDateTitle", "endDateTitle", "required", "description", "startDatePlaceholder", "endDatePlaceholder", "fieldName", "validation", "defaultValue", "minDate", "maxDate", "startDateClassName", "endDateClassName", "wrapperClassName", "disabled", "onChange"];
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ 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); }
18
+ 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; }
19
+ 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); }
20
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
25
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+ var DatePickerRange = function DatePickerRange(props) {
30
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
31
+ t = _useTranslation.t;
32
+ var isSinglePicker = props.isSinglePicker,
33
+ title = props.title,
34
+ startDateTitle = props.startDateTitle,
35
+ endDateTitle = props.endDateTitle,
36
+ required = props.required,
37
+ description = props.description,
38
+ startDatePlaceholder = props.startDatePlaceholder,
39
+ endDatePlaceholder = props.endDatePlaceholder,
40
+ fieldName = props.fieldName,
41
+ validation = props.validation,
42
+ defaultValue = props.defaultValue,
43
+ minDate = props.minDate,
44
+ maxDate = props.maxDate,
45
+ startDateClassName = props.startDateClassName,
46
+ endDateClassName = props.endDateClassName,
47
+ wrapperClassName = props.wrapperClassName,
48
+ disabled = props.disabled,
49
+ _onChange = props.onChange,
50
+ restProps = _objectWithoutProperties(props, _excluded);
51
+ var _useExtendedFormikCon = (0, _FormikWrapper.useExtendedFormikContext)(),
52
+ values = _useExtendedFormikCon.values,
53
+ errors = _useExtendedFormikCon.errors,
54
+ touched = _useExtendedFormikCon.touched,
55
+ setFieldValue = _useExtendedFormikCon.setFieldValue,
56
+ displayRequiredIndicator = _useExtendedFormikCon.displayRequiredIndicator;
57
+ var isTouched = touched[fieldName];
58
+ var error = errors[fieldName];
59
+ var startDateClassNames = (0, _classnames.default)('DatePickerRange--start', startDateClassName);
60
+ var endDateClassNames = (0, _classnames.default)('DatePickerRange--end', endDateClassName);
61
+ var wrapperClassNames = (0, _classnames.default)('DatePickerRange', wrapperClassName);
62
+ var _useMemo = (0, _react.useMemo)(function () {
63
+ var value = values[fieldName] || [];
64
+ var startDate = value[0] || defaultValue[0] || null;
65
+ var endDate = value[1] || defaultValue[1] || null;
66
+ return [startDate, endDate];
67
+ }, [defaultValue, fieldName, values]),
68
+ _useMemo2 = _slicedToArray(_useMemo, 2),
69
+ startDate = _useMemo2[0],
70
+ endDate = _useMemo2[1];
71
+ var fieldValidation = function fieldValidation(value) {
72
+ // Required validation.
73
+ if (required && (!value || !Array.isArray(value) || value.length === 0)) {
74
+ return t(['webform.component.date_picker_range.required', 'webform.required', 'webform_required']);
75
+ }
76
+
77
+ // Min date validation.
78
+ if (minDate && _typeof(minDate) === 'object' && value[0] && _typeof(value[0]) === 'object' && value[0].getTime() < minDate.getTime()) {
79
+ return t(['webform.component.date_picker_range.min', 'webform.min', 'webform_min']);
80
+ }
81
+
82
+ // Max date validation.
83
+ if (maxDate && _typeof(maxDate) === 'object' && value[1] && _typeof(value[1]) === 'object' && value[1].getTime() > maxDate.getTime()) {
84
+ return t(['webform.component.date_picker_range.max', 'webform.max', 'webform_max']);
85
+ }
86
+
87
+ // Custom validation.
88
+ if (validation) {
89
+ return validation(value);
90
+ }
91
+ };
92
+ return /*#__PURE__*/_react.default.createElement(_GenericFormElement.default, {
93
+ className: wrapperClassNames,
94
+ title: title,
95
+ required: required,
96
+ description: description,
97
+ fieldName: fieldName,
98
+ touched: isTouched,
99
+ error: error,
100
+ displayRequiredIndicator: displayRequiredIndicator
101
+ }, /*#__PURE__*/_react.default.createElement(_formik.Field, {
102
+ name: fieldName,
103
+ value: [startDate, endDate],
104
+ validate: fieldValidation
105
+ }, function () {
106
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Picker.default, _extends({}, restProps, {
107
+ title: startDateTitle,
108
+ placeholder: startDatePlaceholder,
109
+ value: startDate,
110
+ selectsStart: !isSinglePicker,
111
+ selectsRange: isSinglePicker,
112
+ startDate: startDate,
113
+ endDate: endDate,
114
+ minDate: minDate,
115
+ maxDate: maxDate,
116
+ className: startDateClassNames,
117
+ disabled: disabled,
118
+ shouldCloseOnSelect: !isSinglePicker,
119
+ onChange: function onChange(date) {
120
+ // When selectsRange is true, date is an array of Date values.
121
+ // Otherwise date is a single Date value.
122
+ var newValue = isSinglePicker ? date : [date, endDate];
123
+ setFieldValue(fieldName, newValue);
124
+ if (_onChange) {
125
+ _onChange(newValue);
126
+ }
127
+ }
128
+ })), !isSinglePicker && /*#__PURE__*/_react.default.createElement(_Picker.default, _extends({}, restProps, {
129
+ title: endDateTitle,
130
+ placeholder: endDatePlaceholder,
131
+ value: endDate,
132
+ selectsEnd: true,
133
+ startDate: startDate,
134
+ endDate: endDate,
135
+ minDate: startDate,
136
+ maxDate: maxDate,
137
+ className: endDateClassNames,
138
+ disabled: disabled,
139
+ onChange: function onChange(date) {
140
+ setFieldValue(fieldName, [startDate, date]);
141
+ if (_onChange) {
142
+ _onChange([startDate, date]);
143
+ }
144
+ }
145
+ })));
146
+ }));
147
+ };
148
+ DatePickerRange.defaultProps = {
149
+ isSinglePicker: false,
150
+ title: '',
151
+ startDateTitle: '',
152
+ endDateTitle: '',
153
+ required: false,
154
+ description: '',
155
+ startDatePlaceholder: '',
156
+ endDatePlaceholder: '',
157
+ validation: function validation() {},
158
+ defaultValue: [],
159
+ minDate: null,
160
+ maxDate: null,
161
+ startDateClassName: '',
162
+ endDateClassName: '',
163
+ wrapperClassName: '',
164
+ disabled: false,
165
+ onChange: function onChange() {}
166
+ };
167
+ DatePickerRange.propTypes = {
168
+ isSinglePicker: _propTypes.default.bool,
169
+ title: _propTypes.default.string,
170
+ startDateTitle: _propTypes.default.string,
171
+ endDateTitle: _propTypes.default.string,
172
+ required: _propTypes.default.bool,
173
+ description: _propTypes.default.string,
174
+ startDatePlaceholder: _propTypes.default.string,
175
+ endDatePlaceholder: _propTypes.default.string,
176
+ fieldName: _propTypes.default.string.isRequired,
177
+ validation: _propTypes.default.func,
178
+ defaultValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),
179
+ minDate: _propTypes.default.instanceOf(Date),
180
+ maxDate: _propTypes.default.instanceOf(Date),
181
+ startDateClassName: _propTypes.default.string,
182
+ endDateClassName: _propTypes.default.string,
183
+ wrapperClassName: _propTypes.default.string,
184
+ disabled: _propTypes.default.bool,
185
+ onChange: _propTypes.default.func
186
+ };
187
+ var _default = DatePickerRange;
188
+ exports.default = _default;
@@ -5,20 +5,14 @@ declare namespace Image {
5
5
  onLoad: PropTypes.Requireable<(...args: any[]) => any>;
6
6
  alt: PropTypes.Requireable<string>;
7
7
  src: PropTypes.Validator<{}>;
8
- dimensions: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
9
- width: PropTypes.Requireable<number>;
10
- height: PropTypes.Requireable<number>;
11
- aspectRatio: PropTypes.Requireable<number>;
12
- }> | (PropTypes.InferProps<{
13
- width: PropTypes.Requireable<number>;
14
- height: PropTypes.Requireable<number>;
15
- aspectRatio: PropTypes.Requireable<number>;
16
- }> | null | undefined)[] | null | undefined>>;
17
8
  lazyload: PropTypes.Requireable<boolean>;
9
+ aspectRatio: PropTypes.Requireable<PropTypes.Requireable<number>>;
10
+ objectFit: PropTypes.Requireable<string>;
18
11
  };
19
12
  namespace defaultProps {
20
13
  let lazyload: boolean;
21
- let dimensions: {};
14
+ let aspectRatio: null;
15
+ let objectFit: null;
22
16
  }
23
17
  }
24
18
  import React from 'react';
@@ -27,19 +27,16 @@ var Image = function Image(props) {
27
27
  }
28
28
  return /*#__PURE__*/_react.default.createElement(PictureComponent, props);
29
29
  };
30
- var dimensionsPropType = _propTypes.default.shape({
31
- width: _propTypes.default.number,
32
- height: _propTypes.default.number,
33
- aspectRatio: _propTypes.default.number
34
- });
35
30
  Image.propTypes = _objectSpread({
36
31
  src: _propTypes.default.oneOfType([_propTypes.default.string, _reactImmutableProptypes.default.map, _propTypes.default.arrayOf(_propTypes.default.string)]).isRequired,
37
- dimensions: _propTypes.default.oneOfType([dimensionsPropType, _propTypes.default.arrayOf(dimensionsPropType)]),
38
- lazyload: _propTypes.default.bool
32
+ lazyload: _propTypes.default.bool,
33
+ aspectRatio: _propTypes.default.oneOf([_propTypes.default.number]),
34
+ objectFit: _propTypes.default.oneOf(['fill', 'contain', 'cover', 'none', 'scale-down'])
39
35
  }, _Picture.default.propTypes);
40
36
  Image.defaultProps = {
41
37
  lazyload: true,
42
- dimensions: {}
38
+ aspectRatio: null,
39
+ objectFit: null
43
40
  };
44
41
  var _default = Image;
45
42
  exports.default = _default;
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export { default as FormCheckbox } from "./components/Form/Checkbox";
20
20
  export { default as FormCheckboxes } from "./components/Form/Checkboxes";
21
21
  export { default as FormDate } from "./components/Form/DateField";
22
22
  export { default as FormDatePicker } from "./components/Form/DatePicker";
23
+ export { default as FormDatePickerRange } from "./components/Form/DatePickerRange";
23
24
  export { default as FormDateSelect } from "./components/Form/DateSelect";
24
25
  export { default as FormEmail } from "./components/Form/Email";
25
26
  export { default as FormNumber } from "./components/Form/Number";
package/dist/index.js CHANGED
@@ -112,6 +112,12 @@ Object.defineProperty(exports, "FormDatePicker", {
112
112
  return _DatePicker.default;
113
113
  }
114
114
  });
115
+ Object.defineProperty(exports, "FormDatePickerRange", {
116
+ enumerable: true,
117
+ get: function get() {
118
+ return _DatePickerRange.default;
119
+ }
120
+ });
115
121
  Object.defineProperty(exports, "FormDateSelect", {
116
122
  enumerable: true,
117
123
  get: function get() {
@@ -500,6 +506,7 @@ var _Checkbox = _interopRequireDefault(require("./components/Form/Checkbox"));
500
506
  var _Checkboxes = _interopRequireDefault(require("./components/Form/Checkboxes"));
501
507
  var _DateField = _interopRequireDefault(require("./components/Form/DateField"));
502
508
  var _DatePicker = _interopRequireDefault(require("./components/Form/DatePicker"));
509
+ var _DatePickerRange = _interopRequireDefault(require("./components/Form/DatePickerRange"));
503
510
  var _DateSelect = _interopRequireDefault(require("./components/Form/DateSelect"));
504
511
  var _Email = _interopRequireDefault(require("./components/Form/Email"));
505
512
  var _FormikWrapper = _interopRequireWildcard(require("./components/Form/FormikWrapper"));
@@ -11,6 +11,9 @@ export interface TextProps {
11
11
  link?: string;
12
12
  linkText?: string;
13
13
  target?: string;
14
+ secondaryLink?: string;
15
+ secondaryLinkText?: string;
16
+ secondaryTarget?: string;
14
17
  className?: string;
15
18
  }
16
19
  declare const Text: React.FC<TextProps>;
@@ -10,6 +10,7 @@ var _reactI18next = require("react-i18next");
10
10
  var _reactAnimateHeight = _interopRequireDefault(require("react-animate-height"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _TitleWithText = _interopRequireDefault(require("../../components/TitleWithText"));
13
+ var _components = require("../../components");
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15
  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); }
15
16
  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; }
@@ -35,6 +36,10 @@ var Text = function Text(_ref) {
35
36
  linkText = _ref.linkText,
36
37
  _ref$target = _ref.target,
37
38
  target = _ref$target === void 0 ? '_self' : _ref$target,
39
+ secondaryLink = _ref.secondaryLink,
40
+ secondaryLinkText = _ref.secondaryLinkText,
41
+ _ref$secondaryTarget = _ref.secondaryTarget,
42
+ secondaryTarget = _ref$secondaryTarget === void 0 ? '_self' : _ref$secondaryTarget,
38
43
  className = _ref.className;
39
44
  var _useState = (0, _react.useState)(false),
40
45
  _useState2 = _slicedToArray(_useState, 2),
@@ -67,12 +72,20 @@ var Text = function Text(_ref) {
67
72
  onClick: function onClick() {
68
73
  return setReadMoreOpened(!readMoreOpened);
69
74
  }
70
- }, readMoreOpened ? t('organisms.text.read_less') : t('organisms.text.read_more'))), link && /*#__PURE__*/_react.default.createElement("a", {
75
+ }, readMoreOpened ? t('organisms.text.read_less') : t('organisms.text.read_more'))), (link || secondaryLink) && /*#__PURE__*/_react.default.createElement("div", {
76
+ className: "Text__links"
77
+ }, link && /*#__PURE__*/_react.default.createElement(_components.Button, {
71
78
  className: "Text__link",
72
79
  href: link,
73
80
  target: target,
74
81
  rel: "noreferrer"
75
- }, linkText));
82
+ }, linkText), secondaryLink && /*#__PURE__*/_react.default.createElement(_components.Button, {
83
+ className: "Text__link__secondary",
84
+ href: secondaryLink,
85
+ target: secondaryTarget,
86
+ inverted: true,
87
+ rel: "noreferrer"
88
+ }, secondaryLinkText)));
76
89
  };
77
90
  var _default = Text;
78
91
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uncinc/uncinc-react-kitchen-sink",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Default React components that are easily extended.",
5
5
  "author": "uncinc",
6
6
  "license": "MIT",
@@ -21,8 +21,6 @@
21
21
  "access": "public"
22
22
  },
23
23
  "scripts": {
24
- "stylelint": "stylelint **/*.scss",
25
- "stylelint:fix": "stylelint --fix **/*.scss",
26
24
  "start": "yarn run storybook",
27
25
  "build": "react-scripts build",
28
26
  "build:js": "cross-env NODE_ENV=production && rm -rf dist && mkdir dist && npx babel src --out-dir dist --copy-files --extensions .ts,.js,.tsx,.jsx,.cjs,.mjs",
@@ -31,14 +29,19 @@
31
29
  "test": "react-scripts test",
32
30
  "test:ci": "react-scripts test --collectCoverage --coverageReporters=cobertura --coverageDirectory=\"./__tests__/coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false",
33
31
  "eject": "react-scripts eject",
34
- "prepare": "yarn run publish:npm",
32
+ "prepare": "yarn run publish:npm && husky install",
35
33
  "storybook": "storybook dev -p 6006",
36
34
  "build-storybook": "storybook build",
37
35
  "yalc-watch": "nodemon -e js,jsx --ignore dist --exec \"yalc publish && yalc push\"",
38
36
  "publish:npm": "yarn build:js && yarn build:types && yarn build:cleanup",
39
37
  "extract": "sb extract",
40
38
  "eslint": "NODE_ENV=development eslint './src/**/*.{js,jsx,ts,tsx}'",
41
- "eslint:fix": "NODE_ENV=development eslint --fix './src/**/*.{js,jsx,ts,tsx}'"
39
+ "eslint:fix": "NODE_ENV=development eslint --fix './src/**/*.{js,jsx,ts,tsx}'",
40
+ "eslint-staged": "NODE_ENV=development eslint $(git diff --staged --name-only --diff-filter=ACM -- '*.js' '*.jsx' '*.ts' '*.tsx')",
41
+ "stylelint": "stylelint **/*.scss",
42
+ "stylelint:fix": "stylelint --fix **/*.scss",
43
+ "stylelint-staged": "stylelint --allow-empty-input $(git diff --staged --name-only --diff-filter=ACM | grep -E .scss || echo foo)",
44
+ "commitlint": "commitlint --edit"
42
45
  },
43
46
  "dependencies": {
44
47
  "@apollo/client": "^3.4.16",
@@ -107,6 +110,8 @@
107
110
  "@babel/preset-env": "^7.20.2",
108
111
  "@babel/preset-react": "^7.18.6",
109
112
  "@babel/runtime": "^7.9.6",
113
+ "@commitlint/cli": "^17.7.1",
114
+ "@commitlint/config-conventional": "^17.7.0",
110
115
  "@material-design-icons/svg": "^0.14.11",
111
116
  "@storybook/addon-actions": "^7.0.18",
112
117
  "@storybook/addon-essentials": "^7.0.18",
@@ -128,6 +133,7 @@
128
133
  "babel-plugin-named-exports-order": "^0.0.2",
129
134
  "chai": "^4.2.0",
130
135
  "cross-env": "^7.0.2",
136
+ "husky": "^8.0.3",
131
137
  "jest-environment-jsdom": "^29.5.0",
132
138
  "jest-junit": "^16.0.0",
133
139
  "prop-types": "^15.8.1",