@dhis2-ui/calendar 10.0.0-alpha.2 → 10.0.0-alpha.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.
@@ -4,9 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CalendarWithClearButton = void 0;
7
- exports.CalendarWithEditableInputReactForm = CalendarWithEditableInputReactForm;
8
7
  exports.CalendarWithEditiableInput = CalendarWithEditiableInput;
8
+ exports.CalendarWithNonStrictValidation = CalendarWithNonStrictValidation;
9
+ exports.CalendarWithStrictValidation = CalendarWithStrictValidation;
9
10
  exports.default = exports.NepaliWithNepali = exports.NepaliWithEnglish = exports.IslamicWithArabic = exports.GregorianWithEnglish = exports.GregorianWithArabic = exports.EthiopicWithEnglish = exports.EthiopicWithAmharic = void 0;
11
+ var _button = require("@dhis2-ui/button");
10
12
  var _react = _interopRequireWildcard(require("react"));
11
13
  var _reactFinalForm = require("react-final-form");
12
14
  var _calendarInput = require("../calendar-input/calendar-input.js");
@@ -135,12 +137,14 @@ function CalendarWithEditiableInput() {
135
137
  clearable: true
136
138
  })));
137
139
  }
138
- function CalendarWithEditableInputReactForm() {
140
+ function CalendarWithStrictValidation() {
139
141
  const [validation, setValidation] = (0, _react.useState)({});
140
142
  const errored = () => {
141
- return {
142
- calendar: validation.validationText
143
- };
143
+ if (validation.error) {
144
+ return {
145
+ calendar: validation.validationText
146
+ };
147
+ }
144
148
  };
145
149
  return /*#__PURE__*/_react.default.createElement(_reactFinalForm.Form, {
146
150
  onSubmit: (values, meta) => {
@@ -163,6 +167,62 @@ function CalendarWithEditableInputReactForm() {
163
167
  }, /*#__PURE__*/_react.default.createElement(_reactFinalForm.Field, {
164
168
  name: "calendar"
165
169
  }, props => /*#__PURE__*/_react.default.createElement(_calendarInput.CalendarInput, _extends({}, props, {
170
+ label: "Enter a date",
171
+ helpText: "Date has to be after 2022-11-01",
172
+ input: props.input,
173
+ meta: props.meta,
174
+ editable: true,
175
+ date: props.input.value,
176
+ calendar: "gregory"
177
+ }, validation, {
178
+ minDate: "2022-11-01",
179
+ onDateSelect: date => {
180
+ const validation = {
181
+ ...date.validation,
182
+ validationText: date.validation.validationCode === 'WRONG_FORMAT' ? 'custom validation message for format' : date.validation.validationText
183
+ };
184
+ setValidation(validation);
185
+ props.input.onChange(date ? date === null || date === void 0 ? void 0 : date.calendarDateString : '');
186
+ }
187
+ }))), /*#__PURE__*/_react.default.createElement(_button.Button, {
188
+ type: "submit",
189
+ disabled: invalid,
190
+ onClick: handleSubmit
191
+ }, "Submit"));
192
+ });
193
+ }
194
+ function CalendarWithNonStrictValidation() {
195
+ const [validation, setValidation] = (0, _react.useState)({});
196
+ const errored = () => {
197
+ if (validation.error) {
198
+ return {
199
+ calendar: validation.validationText
200
+ };
201
+ }
202
+ };
203
+ return /*#__PURE__*/_react.default.createElement(_reactFinalForm.Form, {
204
+ onSubmit: (values, meta) => {
205
+ console.log('SUBMITTING', {
206
+ values,
207
+ meta
208
+ });
209
+ },
210
+ initialValues: {
211
+ calendar: '2022-10-12'
212
+ },
213
+ validate: errored
214
+ }, _ref4 => {
215
+ let {
216
+ handleSubmit,
217
+ invalid
218
+ } = _ref4;
219
+ return /*#__PURE__*/_react.default.createElement("form", {
220
+ onSubmit: handleSubmit
221
+ }, /*#__PURE__*/_react.default.createElement(_reactFinalForm.Field, {
222
+ name: "calendar"
223
+ }, props => /*#__PURE__*/_react.default.createElement(_calendarInput.CalendarInput, _extends({}, props, {
224
+ label: "Enter a date",
225
+ helpText: "Date has to be after 2022-11-01",
166
226
  input: props.input,
167
227
  meta: props.meta,
168
228
  editable: true,
@@ -170,6 +230,7 @@ function CalendarWithEditableInputReactForm() {
170
230
  calendar: "gregory"
171
231
  }, validation, {
172
232
  minDate: "2022-11-01",
233
+ strictValidation: false,
173
234
  onDateSelect: date => {
174
235
  const validation = {
175
236
  ...date.validation,
@@ -178,7 +239,7 @@ function CalendarWithEditableInputReactForm() {
178
239
  setValidation(validation);
179
240
  props.input.onChange(date ? date === null || date === void 0 ? void 0 : date.calendarDateString : '');
180
241
  }
181
- }))), /*#__PURE__*/_react.default.createElement("button", {
242
+ }))), /*#__PURE__*/_react.default.createElement(_button.Button, {
182
243
  type: "submit",
183
244
  disabled: invalid,
184
245
  onClick: handleSubmit
@@ -1,4 +1,5 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import { Button } from '@dhis2-ui/button';
2
3
  import React, { useState } from 'react';
3
4
  import { Field, Form } from 'react-final-form';
4
5
  import { CalendarInput } from '../calendar-input/calendar-input.js';
@@ -122,12 +123,14 @@ export function CalendarWithEditiableInput() {
122
123
  clearable: true
123
124
  })));
124
125
  }
125
- export function CalendarWithEditableInputReactForm() {
126
+ export function CalendarWithStrictValidation() {
126
127
  const [validation, setValidation] = useState({});
127
128
  const errored = () => {
128
- return {
129
- calendar: validation.validationText
130
- };
129
+ if (validation.error) {
130
+ return {
131
+ calendar: validation.validationText
132
+ };
133
+ }
131
134
  };
132
135
  return /*#__PURE__*/React.createElement(Form, {
133
136
  onSubmit: (values, meta) => {
@@ -150,6 +153,62 @@ export function CalendarWithEditableInputReactForm() {
150
153
  }, /*#__PURE__*/React.createElement(Field, {
151
154
  name: "calendar"
152
155
  }, props => /*#__PURE__*/React.createElement(CalendarInput, _extends({}, props, {
156
+ label: "Enter a date",
157
+ helpText: "Date has to be after 2022-11-01",
158
+ input: props.input,
159
+ meta: props.meta,
160
+ editable: true,
161
+ date: props.input.value,
162
+ calendar: "gregory"
163
+ }, validation, {
164
+ minDate: "2022-11-01",
165
+ onDateSelect: date => {
166
+ const validation = {
167
+ ...date.validation,
168
+ validationText: date.validation.validationCode === 'WRONG_FORMAT' ? 'custom validation message for format' : date.validation.validationText
169
+ };
170
+ setValidation(validation);
171
+ props.input.onChange(date ? date === null || date === void 0 ? void 0 : date.calendarDateString : '');
172
+ }
173
+ }))), /*#__PURE__*/React.createElement(Button, {
174
+ type: "submit",
175
+ disabled: invalid,
176
+ onClick: handleSubmit
177
+ }, "Submit"));
178
+ });
179
+ }
180
+ export function CalendarWithNonStrictValidation() {
181
+ const [validation, setValidation] = useState({});
182
+ const errored = () => {
183
+ if (validation.error) {
184
+ return {
185
+ calendar: validation.validationText
186
+ };
187
+ }
188
+ };
189
+ return /*#__PURE__*/React.createElement(Form, {
190
+ onSubmit: (values, meta) => {
191
+ console.log('SUBMITTING', {
192
+ values,
193
+ meta
194
+ });
195
+ },
196
+ initialValues: {
197
+ calendar: '2022-10-12'
198
+ },
199
+ validate: errored
200
+ }, _ref4 => {
201
+ let {
202
+ handleSubmit,
203
+ invalid
204
+ } = _ref4;
205
+ return /*#__PURE__*/React.createElement("form", {
206
+ onSubmit: handleSubmit
207
+ }, /*#__PURE__*/React.createElement(Field, {
208
+ name: "calendar"
209
+ }, props => /*#__PURE__*/React.createElement(CalendarInput, _extends({}, props, {
210
+ label: "Enter a date",
211
+ helpText: "Date has to be after 2022-11-01",
153
212
  input: props.input,
154
213
  meta: props.meta,
155
214
  editable: true,
@@ -157,6 +216,7 @@ export function CalendarWithEditableInputReactForm() {
157
216
  calendar: "gregory"
158
217
  }, validation, {
159
218
  minDate: "2022-11-01",
219
+ strictValidation: false,
160
220
  onDateSelect: date => {
161
221
  const validation = {
162
222
  ...date.validation,
@@ -165,7 +225,7 @@ export function CalendarWithEditableInputReactForm() {
165
225
  setValidation(validation);
166
226
  props.input.onChange(date ? date === null || date === void 0 ? void 0 : date.calendarDateString : '');
167
227
  }
168
- }))), /*#__PURE__*/React.createElement("button", {
228
+ }))), /*#__PURE__*/React.createElement(Button, {
169
229
  type: "submit",
170
230
  disabled: invalid,
171
231
  onClick: handleSubmit
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2-ui/calendar",
3
- "version": "10.0.0-alpha.2",
3
+ "version": "10.0.0-alpha.4",
4
4
  "description": "UI Calendar",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,15 +33,15 @@
33
33
  "styled-jsx": "^4"
34
34
  },
35
35
  "dependencies": {
36
- "@dhis2-ui/button": "10.0.0-alpha.2",
37
- "@dhis2-ui/card": "10.0.0-alpha.2",
38
- "@dhis2-ui/input": "10.0.0-alpha.2",
39
- "@dhis2-ui/layer": "10.0.0-alpha.2",
40
- "@dhis2-ui/popper": "10.0.0-alpha.2",
36
+ "@dhis2-ui/button": "10.0.0-alpha.4",
37
+ "@dhis2-ui/card": "10.0.0-alpha.4",
38
+ "@dhis2-ui/input": "10.0.0-alpha.4",
39
+ "@dhis2-ui/layer": "10.0.0-alpha.4",
40
+ "@dhis2-ui/popper": "10.0.0-alpha.4",
41
41
  "@dhis2/multi-calendar-dates": "2.0.0-alpha.2",
42
42
  "@dhis2/prop-types": "^3.1.2",
43
- "@dhis2/ui-constants": "10.0.0-alpha.2",
44
- "@dhis2/ui-icons": "10.0.0-alpha.2",
43
+ "@dhis2/ui-constants": "10.0.0-alpha.4",
44
+ "@dhis2/ui-icons": "10.0.0-alpha.4",
45
45
  "classnames": "^2.3.1",
46
46
  "prop-types": "^15.7.2"
47
47
  },
package/types/index.d.ts CHANGED
@@ -20,6 +20,11 @@ export interface CalendarProps {
20
20
  * the size of a single cell in the table forming the calendar
21
21
  */
22
22
  cellSize?: string
23
+
24
+ /**
25
+ * Add a "clear" button to delete the selected date
26
+ */
27
+ clearable?: boolean
23
28
  /**
24
29
  * the currently selected date using an iso-like format YYYY-MM-DD, in the calendar system provided (not iso8601)
25
30
  */
@@ -52,10 +57,7 @@ export interface CalendarProps {
52
57
 
53
58
  export const Calendar: React.FC<CalendarProps>
54
59
 
55
- export type CalendarInputProps = Omit<
56
- InputFieldProps,
57
- 'label' | 'type' | 'value'
58
- > &
60
+ export type CalendarInputProps = Omit<InputFieldProps, 'type' | 'value'> &
59
61
  CalendarProps
60
62
 
61
63
  export const CalendarInput: React.FC<CalendarInputProps>