colibri-ui 0.8.63 → 0.8.64

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.
@@ -1,4 +1,7 @@
1
- import type { Timestamp } from "./index.props";
1
+ export type Timestamp = {
2
+ time: string;
3
+ disabled?: boolean;
4
+ };
2
5
  export declare const DEFAULT_TIME: {
3
6
  index: number;
4
7
  time: string;
@@ -7,3 +10,8 @@ export declare const formatTime: (date: Date) => string;
7
10
  export declare const generateSuggest: (interval?: number) => Timestamp[];
8
11
  export declare const checkIsBeforeNow: (time: string, currentDate?: Date | null) => boolean;
9
12
  export declare const checkIsBeforeSelectedDate: (time: string, interval: number, date?: Date | null) => boolean;
13
+ export type TimeRange = {
14
+ start: string;
15
+ end: string;
16
+ };
17
+ export declare const isTimeInRange: (timeString: string, range: TimeRange) => boolean;
@@ -1,7 +1,12 @@
1
1
  'use strict';
2
2
 
3
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
3
4
  var dateFns = require('date-fns');
4
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
9
+
5
10
  var day = new Date();
6
11
  day.setHours(24, 0, 0, 0);
7
12
  var DEFAULT_TIME = {
@@ -38,9 +43,28 @@ var checkIsBeforeSelectedDate = function checkIsBeforeSelectedDate(time, interva
38
43
  }
39
44
  return false;
40
45
  };
46
+ var isTimeInRange = function isTimeInRange(timeString, range) {
47
+ var _timeString$split$map = timeString.split(":").map(Number),
48
+ _timeString$split$map2 = _slicedToArray__default.default(_timeString$split$map, 2),
49
+ hours = _timeString$split$map2[0],
50
+ minutes = _timeString$split$map2[1];
51
+ var totalMinutes = hours * 60 + minutes;
52
+ var _range$start$split$ma = range.start.split(":").map(Number),
53
+ _range$start$split$ma2 = _slicedToArray__default.default(_range$start$split$ma, 2),
54
+ startHours = _range$start$split$ma2[0],
55
+ startMinutes = _range$start$split$ma2[1];
56
+ var startTotalMinutes = startHours * 60 + startMinutes;
57
+ var _range$end$split$map = range.end.split(":").map(Number),
58
+ _range$end$split$map2 = _slicedToArray__default.default(_range$end$split$map, 2),
59
+ endHours = _range$end$split$map2[0],
60
+ endMinutes = _range$end$split$map2[1];
61
+ var endTotalMinutes = endHours * 60 + endMinutes;
62
+ return totalMinutes >= startTotalMinutes && totalMinutes <= endTotalMinutes;
63
+ };
41
64
 
42
65
  exports.DEFAULT_TIME = DEFAULT_TIME;
43
66
  exports.checkIsBeforeNow = checkIsBeforeNow;
44
67
  exports.checkIsBeforeSelectedDate = checkIsBeforeSelectedDate;
45
68
  exports.formatTime = formatTime;
46
69
  exports.generateSuggest = generateSuggest;
70
+ exports.isTimeInRange = isTimeInRange;
@@ -1,19 +1,11 @@
1
1
  import type { SelectProps } from "../Select/index.props";
2
+ import type { TimeRange } from "./helpers";
2
3
  import type { FC } from "react";
3
- type TimeRange = {
4
- start: string;
5
- end: string;
6
- };
7
4
  interface TimeSelectProps extends Omit<SelectProps<string>, "options"> {
8
5
  interval?: 5 | 10 | 15 | 30;
9
6
  currentDate?: Date | null;
10
7
  selectedDate?: Date | null;
11
- name?: string;
12
- disabled?: boolean;
13
8
  allowedTimeRange?: TimeRange;
14
- fullWidth?: boolean;
15
- placeholder?: string;
16
- required?: boolean;
17
9
  }
18
10
  declare const TimeSelect: FC<TimeSelectProps>;
19
11
  export default TimeSelect;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
5
  var React = require('react');
7
6
  var index$1 = require('../Select/index.js');
8
7
  var helpers = require('./helpers.js');
@@ -10,27 +9,8 @@ var index = require('./Label/index.js');
10
9
 
11
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
11
 
13
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
14
12
  var React__default = /*#__PURE__*/_interopDefault(React);
15
13
 
16
- var isTimeInRange = function isTimeInRange(timeString, range) {
17
- var _timeString$split$map = timeString.split(":").map(Number),
18
- _timeString$split$map2 = _slicedToArray__default.default(_timeString$split$map, 2),
19
- hours = _timeString$split$map2[0],
20
- minutes = _timeString$split$map2[1];
21
- var totalMinutes = hours * 60 + minutes;
22
- var _range$start$split$ma = range.start.split(":").map(Number),
23
- _range$start$split$ma2 = _slicedToArray__default.default(_range$start$split$ma, 2),
24
- startHours = _range$start$split$ma2[0],
25
- startMinutes = _range$start$split$ma2[1];
26
- var startTotalMinutes = startHours * 60 + startMinutes;
27
- var _range$end$split$map = range.end.split(":").map(Number),
28
- _range$end$split$map2 = _slicedToArray__default.default(_range$end$split$map, 2),
29
- endHours = _range$end$split$map2[0],
30
- endMinutes = _range$end$split$map2[1];
31
- var endTotalMinutes = endHours * 60 + endMinutes;
32
- return totalMinutes >= startTotalMinutes && totalMinutes <= endTotalMinutes;
33
- };
34
14
  var TimeSelect = function TimeSelect(_ref) {
35
15
  var value = _ref.value,
36
16
  name = _ref.name,
@@ -44,7 +24,9 @@ var TimeSelect = function TimeSelect(_ref) {
44
24
  allowedTimeRange = _ref.allowedTimeRange,
45
25
  placeholder = _ref.placeholder,
46
26
  fullWidth = _ref.fullWidth,
47
- required = _ref.required;
27
+ required = _ref.required,
28
+ hasError = _ref.hasError,
29
+ hint = _ref.hint;
48
30
  var baseOptions = React.useMemo(function () {
49
31
  return helpers.generateSuggest(interval).map(function (item) {
50
32
  return {
@@ -57,15 +39,12 @@ var TimeSelect = function TimeSelect(_ref) {
57
39
  }, [interval]);
58
40
  var options = React.useMemo(function () {
59
41
  return baseOptions.map(function (option) {
60
- var timeRangeDisabled = !!allowedTimeRange && !isTimeInRange(option.value, allowedTimeRange);
61
- var beforeSelectedDisabled = !!selectedDate && helpers.checkIsBeforeSelectedDate(option.value, interval, selectedDate);
62
- var beforeCurrentDisabled = !!currentDate && helpers.checkIsBeforeNow(option.value, currentDate);
63
- var isDisabled = timeRangeDisabled || beforeSelectedDisabled || beforeCurrentDisabled;
42
+ var isDisabled = !!allowedTimeRange && !helpers.isTimeInRange(option.value, allowedTimeRange) || !!selectedDate && helpers.checkIsBeforeSelectedDate(option.value, interval, selectedDate) || !!currentDate && helpers.checkIsBeforeNow(option.value, currentDate);
64
43
  return Object.assign(Object.assign({}, option), {
65
44
  disabled: isDisabled
66
45
  });
67
46
  });
68
- }, [baseOptions, currentDate, selectedDate, interval, allowedTimeRange]);
47
+ }, [baseOptions, currentDate, selectedDate, allowedTimeRange]);
69
48
  return /*#__PURE__*/React__default.default.createElement(index$1.default, {
70
49
  fullWidth: fullWidth,
71
50
  name: name,
@@ -75,7 +54,9 @@ var TimeSelect = function TimeSelect(_ref) {
75
54
  label: label,
76
55
  options: options,
77
56
  onChange: onChange,
78
- disabled: disabled
57
+ disabled: disabled,
58
+ hasError: hasError,
59
+ hint: hint
79
60
  });
80
61
  };
81
62
 
@@ -1,4 +1,7 @@
1
- import type { Timestamp } from "./index.props";
1
+ export type Timestamp = {
2
+ time: string;
3
+ disabled?: boolean;
4
+ };
2
5
  export declare const DEFAULT_TIME: {
3
6
  index: number;
4
7
  time: string;
@@ -7,3 +10,8 @@ export declare const formatTime: (date: Date) => string;
7
10
  export declare const generateSuggest: (interval?: number) => Timestamp[];
8
11
  export declare const checkIsBeforeNow: (time: string, currentDate?: Date | null) => boolean;
9
12
  export declare const checkIsBeforeSelectedDate: (time: string, interval: number, date?: Date | null) => boolean;
13
+ export type TimeRange = {
14
+ start: string;
15
+ end: string;
16
+ };
17
+ export declare const isTimeInRange: (timeString: string, range: TimeRange) => boolean;
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
1
2
  import { addMinutes, parse, isBefore, format } from 'date-fns';
2
3
 
3
4
  var day = new Date();
@@ -32,5 +33,23 @@ var checkIsBeforeSelectedDate = function checkIsBeforeSelectedDate(time, interva
32
33
  }
33
34
  return false;
34
35
  };
36
+ var isTimeInRange = function isTimeInRange(timeString, range) {
37
+ var _timeString$split$map = timeString.split(":").map(Number),
38
+ _timeString$split$map2 = _slicedToArray(_timeString$split$map, 2),
39
+ hours = _timeString$split$map2[0],
40
+ minutes = _timeString$split$map2[1];
41
+ var totalMinutes = hours * 60 + minutes;
42
+ var _range$start$split$ma = range.start.split(":").map(Number),
43
+ _range$start$split$ma2 = _slicedToArray(_range$start$split$ma, 2),
44
+ startHours = _range$start$split$ma2[0],
45
+ startMinutes = _range$start$split$ma2[1];
46
+ var startTotalMinutes = startHours * 60 + startMinutes;
47
+ var _range$end$split$map = range.end.split(":").map(Number),
48
+ _range$end$split$map2 = _slicedToArray(_range$end$split$map, 2),
49
+ endHours = _range$end$split$map2[0],
50
+ endMinutes = _range$end$split$map2[1];
51
+ var endTotalMinutes = endHours * 60 + endMinutes;
52
+ return totalMinutes >= startTotalMinutes && totalMinutes <= endTotalMinutes;
53
+ };
35
54
 
36
- export { checkIsBeforeNow, checkIsBeforeSelectedDate, formatTime, generateSuggest };
55
+ export { checkIsBeforeNow, checkIsBeforeSelectedDate, formatTime, generateSuggest, isTimeInRange };
@@ -1,19 +1,11 @@
1
1
  import type { SelectProps } from "../Select/index.props";
2
+ import type { TimeRange } from "./helpers";
2
3
  import type { FC } from "react";
3
- type TimeRange = {
4
- start: string;
5
- end: string;
6
- };
7
4
  interface TimeSelectProps extends Omit<SelectProps<string>, "options"> {
8
5
  interval?: 5 | 10 | 15 | 30;
9
6
  currentDate?: Date | null;
10
7
  selectedDate?: Date | null;
11
- name?: string;
12
- disabled?: boolean;
13
8
  allowedTimeRange?: TimeRange;
14
- fullWidth?: boolean;
15
- placeholder?: string;
16
- required?: boolean;
17
9
  }
18
10
  declare const TimeSelect: FC<TimeSelectProps>;
19
11
  export default TimeSelect;
@@ -1,27 +1,8 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import React__default, { useMemo } from 'react';
3
2
  import Select from '../Select/index.js';
4
- import { generateSuggest, checkIsBeforeSelectedDate, checkIsBeforeNow } from './helpers.js';
3
+ import { generateSuggest, isTimeInRange, checkIsBeforeSelectedDate, checkIsBeforeNow } from './helpers.js';
5
4
  import OptionLabel from './Label/index.js';
6
5
 
7
- var isTimeInRange = function isTimeInRange(timeString, range) {
8
- var _timeString$split$map = timeString.split(":").map(Number),
9
- _timeString$split$map2 = _slicedToArray(_timeString$split$map, 2),
10
- hours = _timeString$split$map2[0],
11
- minutes = _timeString$split$map2[1];
12
- var totalMinutes = hours * 60 + minutes;
13
- var _range$start$split$ma = range.start.split(":").map(Number),
14
- _range$start$split$ma2 = _slicedToArray(_range$start$split$ma, 2),
15
- startHours = _range$start$split$ma2[0],
16
- startMinutes = _range$start$split$ma2[1];
17
- var startTotalMinutes = startHours * 60 + startMinutes;
18
- var _range$end$split$map = range.end.split(":").map(Number),
19
- _range$end$split$map2 = _slicedToArray(_range$end$split$map, 2),
20
- endHours = _range$end$split$map2[0],
21
- endMinutes = _range$end$split$map2[1];
22
- var endTotalMinutes = endHours * 60 + endMinutes;
23
- return totalMinutes >= startTotalMinutes && totalMinutes <= endTotalMinutes;
24
- };
25
6
  var TimeSelect = function TimeSelect(_ref) {
26
7
  var value = _ref.value,
27
8
  name = _ref.name,
@@ -35,7 +16,9 @@ var TimeSelect = function TimeSelect(_ref) {
35
16
  allowedTimeRange = _ref.allowedTimeRange,
36
17
  placeholder = _ref.placeholder,
37
18
  fullWidth = _ref.fullWidth,
38
- required = _ref.required;
19
+ required = _ref.required,
20
+ hasError = _ref.hasError,
21
+ hint = _ref.hint;
39
22
  var baseOptions = useMemo(function () {
40
23
  return generateSuggest(interval).map(function (item) {
41
24
  return {
@@ -48,15 +31,12 @@ var TimeSelect = function TimeSelect(_ref) {
48
31
  }, [interval]);
49
32
  var options = useMemo(function () {
50
33
  return baseOptions.map(function (option) {
51
- var timeRangeDisabled = !!allowedTimeRange && !isTimeInRange(option.value, allowedTimeRange);
52
- var beforeSelectedDisabled = !!selectedDate && checkIsBeforeSelectedDate(option.value, interval, selectedDate);
53
- var beforeCurrentDisabled = !!currentDate && checkIsBeforeNow(option.value, currentDate);
54
- var isDisabled = timeRangeDisabled || beforeSelectedDisabled || beforeCurrentDisabled;
34
+ var isDisabled = !!allowedTimeRange && !isTimeInRange(option.value, allowedTimeRange) || !!selectedDate && checkIsBeforeSelectedDate(option.value, interval, selectedDate) || !!currentDate && checkIsBeforeNow(option.value, currentDate);
55
35
  return Object.assign(Object.assign({}, option), {
56
36
  disabled: isDisabled
57
37
  });
58
38
  });
59
- }, [baseOptions, currentDate, selectedDate, interval, allowedTimeRange]);
39
+ }, [baseOptions, currentDate, selectedDate, allowedTimeRange]);
60
40
  return /*#__PURE__*/React__default.createElement(Select, {
61
41
  fullWidth: fullWidth,
62
42
  name: name,
@@ -66,7 +46,9 @@ var TimeSelect = function TimeSelect(_ref) {
66
46
  label: label,
67
47
  options: options,
68
48
  onChange: onChange,
69
- disabled: disabled
49
+ disabled: disabled,
50
+ hasError: hasError,
51
+ hint: hint
70
52
  });
71
53
  };
72
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colibri-ui",
3
- "version": "0.8.63",
3
+ "version": "0.8.64",
4
4
  "description": "React UI components library",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1,4 +0,0 @@
1
- export type Timestamp = {
2
- time: string;
3
- disabled?: boolean;
4
- };
@@ -1,4 +0,0 @@
1
- export type Timestamp = {
2
- time: string;
3
- disabled?: boolean;
4
- };