@skedulo/sked-ui 19.19.1 → 19.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/buttons/icon-button/IconButton.d.ts +1 -0
- package/dist/components/calendar-controls/CalendarControls-utils.d.ts +3 -2
- package/dist/components/calendar-controls/CalendarControls.d.ts +2 -2
- package/dist/components/calendar-controls/elements/DateSelector.d.ts +14 -0
- package/dist/components/calendar-controls/elements/NavigationButtons.d.ts +2 -2
- package/dist/index.js +40 -15
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ interface IconButtonProps {
|
|
|
6
6
|
icon: IconNames;
|
|
7
7
|
tooltipContent: ITooltipProps['content'];
|
|
8
8
|
tooltipDelay?: ITooltipProps['delayShow'];
|
|
9
|
+
disableTooltip?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare type IIconButton = IconButtonProps & Partial<IButtonProps>;
|
|
11
12
|
export declare const IconButton: React.FC<IIconButton>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RangeType } from './elements/RangePicker';
|
|
2
2
|
export declare type DateDirection = 'forward' | 'backward';
|
|
3
|
+
export declare type DateFormat = 'MonthDayYear' | 'DayMonthYear';
|
|
3
4
|
export declare const moveDate: (selected: Date, days: RangeType, direction: DateDirection) => Date;
|
|
4
5
|
export declare const endOfPeriod: (selected: Date, selectedRange: RangeType) => Date;
|
|
5
|
-
export declare const formatLongDate: (date: Date) => string;
|
|
6
|
-
export declare const formatShortDate: (date: Date) => string;
|
|
6
|
+
export declare const formatLongDate: (date: Date, dateFormat?: DateFormat) => string;
|
|
7
|
+
export declare const formatShortDate: (date: Date, dateFormat?: DateFormat) => string;
|
|
@@ -13,7 +13,7 @@ export interface IBaseCalendarControlProps extends ValidationProps {
|
|
|
13
13
|
*/
|
|
14
14
|
selected?: Date;
|
|
15
15
|
}
|
|
16
|
-
export interface ICalendarControlProps extends React.HTMLAttributes<HTMLDivElement>, IDateSelectorProps, INavigationButtonProps, IRangeProps {
|
|
16
|
+
export interface ICalendarControlProps extends React.HTMLAttributes<HTMLDivElement>, IBaseCalendarControlProps, IDateSelectorProps, INavigationButtonProps, IRangeProps {
|
|
17
17
|
/**
|
|
18
18
|
* Whenever the user clicks the `Today` button this callback is triggered
|
|
19
19
|
*/
|
|
@@ -23,7 +23,7 @@ export declare function useCalendarControlsContext(): ICalendarControlProps;
|
|
|
23
23
|
declare function CalendarControls(props: ICalendarControlProps): JSX.Element;
|
|
24
24
|
declare namespace CalendarControls {
|
|
25
25
|
var TodayButton: React.FC<import("./elements/TodayButton").ITodayButtonProps>;
|
|
26
|
-
var NavigationButtons:
|
|
26
|
+
var NavigationButtons: (props: INavigationButtonProps) => JSX.Element;
|
|
27
27
|
var DateSelector: React.FC<IDateSelectorProps>;
|
|
28
28
|
var RangePicker: React.FC<IRangeProps>;
|
|
29
29
|
}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import React, { HTMLAttributes } from 'react';
|
|
2
|
+
import { ReactDatePickerProps } from 'react-datepicker';
|
|
2
3
|
import { ButtonTypes } from '../../..';
|
|
3
4
|
import { IBaseCalendarControlProps } from '../CalendarControls';
|
|
5
|
+
import { DateFormat } from '../CalendarControls-utils';
|
|
4
6
|
export declare type SelectDateHandler = (date: Date) => void;
|
|
5
7
|
export interface IBaseDateSelectorProps extends IBaseCalendarControlProps {
|
|
6
8
|
/**
|
|
7
9
|
* Whenever the date is changed, either through direct select, clicking to or navigating, the new date is provided to this function
|
|
8
10
|
*/
|
|
9
11
|
onDateSelect?: SelectDateHandler;
|
|
12
|
+
/**
|
|
13
|
+
* Minimum date allowed to be selected. This will also affect the month navigation
|
|
14
|
+
*/
|
|
15
|
+
minDate?: ReactDatePickerProps['minDate'];
|
|
16
|
+
/**
|
|
17
|
+
* Latest date allowed to be selected. This will also affect the month navigation
|
|
18
|
+
*/
|
|
19
|
+
maxDate?: ReactDatePickerProps['maxDate'];
|
|
10
20
|
}
|
|
11
21
|
export interface IDateSelectorProps extends IBaseDateSelectorProps, HTMLAttributes<HTMLDivElement> {
|
|
12
22
|
/**
|
|
@@ -29,5 +39,9 @@ export interface IDateSelectorProps extends IBaseDateSelectorProps, HTMLAttribut
|
|
|
29
39
|
* The type of Datepicker custom input button to be displayed. Primary | Secondary | Transparent
|
|
30
40
|
*/
|
|
31
41
|
buttonType?: ButtonTypes;
|
|
42
|
+
/**
|
|
43
|
+
* User preferred date format
|
|
44
|
+
*/
|
|
45
|
+
dateFormat?: DateFormat;
|
|
32
46
|
}
|
|
33
47
|
export declare const DateSelector: React.FC<IDateSelectorProps>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { IBaseDateSelectorProps } from './DateSelector';
|
|
3
2
|
export interface INavigationButtonProps extends IBaseDateSelectorProps {
|
|
3
|
+
hideTooltipIfDisabled?: boolean;
|
|
4
4
|
}
|
|
5
|
-
export declare const NavigationButtons:
|
|
5
|
+
export declare const NavigationButtons: (props: INavigationButtonProps) => JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -14344,17 +14344,24 @@ var IconButton = function IconButton(_ref) {
|
|
|
14344
14344
|
buttonType = _ref.buttonType,
|
|
14345
14345
|
className = _ref.className,
|
|
14346
14346
|
tooltipDelay = _ref.tooltipDelay,
|
|
14347
|
-
|
|
14347
|
+
disableTooltip = _ref.disableTooltip,
|
|
14348
|
+
otherProps = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref, ["icon", "tooltipContent", "buttonType", "className", "tooltipDelay", "disableTooltip"]);
|
|
14349
|
+
|
|
14350
|
+
var button = react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_button_Button__WEBPACK_IMPORTED_MODULE_5__["Button"], _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({
|
|
14351
|
+
buttonType: buttonType || 'transparent',
|
|
14352
|
+
className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('sked-button--icon-only', className),
|
|
14353
|
+
icon: icon
|
|
14354
|
+
}, otherProps));
|
|
14355
|
+
|
|
14356
|
+
if (disableTooltip) {
|
|
14357
|
+
return button;
|
|
14358
|
+
}
|
|
14348
14359
|
|
|
14349
14360
|
return react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_popups_tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_4__["Tooltip"], {
|
|
14350
14361
|
content: tooltipContent,
|
|
14351
14362
|
position: "top",
|
|
14352
14363
|
delayShow: tooltipDelay
|
|
14353
|
-
},
|
|
14354
|
-
buttonType: buttonType || 'transparent',
|
|
14355
|
-
className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('sked-button--icon-only', className),
|
|
14356
|
-
icon: icon
|
|
14357
|
-
}, otherProps)));
|
|
14364
|
+
}, button);
|
|
14358
14365
|
};
|
|
14359
14366
|
|
|
14360
14367
|
/***/ }),
|
|
@@ -14495,7 +14502,7 @@ function CalendarControls(props) {
|
|
|
14495
14502
|
children = props.children,
|
|
14496
14503
|
rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(props, ["selected", "onDateSelect", "onTodayClick", "onDayMouseEnter", "onMonthMouseLeave", "highlightWeek", "selectWeek", "validation", "selectedRange", "onRangeChange", "rangeOptions", "className", "children"]);
|
|
14497
14504
|
|
|
14498
|
-
var classNames = classnames__WEBPACK_IMPORTED_MODULE_3___default()('sked-calendar-controls sk-flex sk-
|
|
14505
|
+
var classNames = classnames__WEBPACK_IMPORTED_MODULE_3___default()('sked-calendar-controls sk-flex sk-items-center', className);
|
|
14499
14506
|
var value = react__WEBPACK_IMPORTED_MODULE_2__["useMemo"](function () {
|
|
14500
14507
|
return props;
|
|
14501
14508
|
}, [selected, onDateSelect, onTodayClick, onDayMouseEnter, onMonthMouseLeave, highlightWeek, selectWeek, validation, selectedRange, onRangeChange, rangeOptions, className, children]);
|
|
@@ -14560,7 +14567,11 @@ var DateSelector = function DateSelector(props) {
|
|
|
14560
14567
|
selected = _calendarControlProps.selected,
|
|
14561
14568
|
_calendarControlProps3 = _calendarControlProps.buttonType,
|
|
14562
14569
|
buttonType = _calendarControlProps3 === void 0 ? 'transparent' : _calendarControlProps3,
|
|
14563
|
-
validation = _calendarControlProps.validation
|
|
14570
|
+
validation = _calendarControlProps.validation,
|
|
14571
|
+
_calendarControlProps4 = _calendarControlProps.dateFormat,
|
|
14572
|
+
dateFormat = _calendarControlProps4 === void 0 ? 'MonthDayYear' : _calendarControlProps4,
|
|
14573
|
+
minDate = _calendarControlProps.minDate,
|
|
14574
|
+
maxDate = _calendarControlProps.maxDate;
|
|
14564
14575
|
|
|
14565
14576
|
var className = props.className;
|
|
14566
14577
|
|
|
@@ -14575,9 +14586,9 @@ var DateSelector = function DateSelector(props) {
|
|
|
14575
14586
|
|
|
14576
14587
|
var startDate = selected !== null && selected !== void 0 ? selected : new Date();
|
|
14577
14588
|
var endDate = Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["endOfPeriod"])(selected, selectedRange);
|
|
14578
|
-
var formattedStartDate = startDate.getFullYear() === endDate.getFullYear() ? Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatShortDate"])(startDate) : Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(startDate);
|
|
14579
|
-
var formattedEndDate = Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(endDate);
|
|
14580
|
-
var formattedDate = selectedRange === 'day' ? Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(selected) : "".concat(formattedStartDate, " - ").concat(formattedEndDate);
|
|
14589
|
+
var formattedStartDate = startDate.getFullYear() === endDate.getFullYear() ? Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatShortDate"])(startDate, dateFormat) : Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(startDate, dateFormat);
|
|
14590
|
+
var formattedEndDate = Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(endDate, dateFormat);
|
|
14591
|
+
var formattedDate = selectedRange === 'day' ? Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_6__["formatLongDate"])(selected, dateFormat) : "".concat(formattedStartDate, " - ").concat(formattedEndDate);
|
|
14581
14592
|
var buttonClasses = className !== null && className !== void 0 ? className : 'hover:sk-bg-neutral-250 sk-text-base sk-mr-3 sk-text-neutral-850 sk-px-3 sk-py-1 sk-leading-normal sk-border-none';
|
|
14582
14593
|
|
|
14583
14594
|
var onChange = function onChange(date) {
|
|
@@ -14626,7 +14637,9 @@ var DateSelector = function DateSelector(props) {
|
|
|
14626
14637
|
selectedRange: selectedRange,
|
|
14627
14638
|
onClickOutside: toggleExpanded,
|
|
14628
14639
|
clearable: false,
|
|
14629
|
-
onCalendarClose: toggleExpanded
|
|
14640
|
+
onCalendarClose: toggleExpanded,
|
|
14641
|
+
minDate: minDate,
|
|
14642
|
+
maxDate: maxDate
|
|
14630
14643
|
});
|
|
14631
14644
|
};
|
|
14632
14645
|
|
|
@@ -14675,10 +14688,12 @@ var endOfPeriod = function endOfPeriod(selected, selectedRange) {
|
|
|
14675
14688
|
return moveDate(nextPeriod, 'day', 'backward');
|
|
14676
14689
|
};
|
|
14677
14690
|
var formatLongDate = function formatLongDate(date) {
|
|
14678
|
-
|
|
14691
|
+
var dateFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'MonthDayYear';
|
|
14692
|
+
return Object(date_fns_format__WEBPACK_IMPORTED_MODULE_0__["default"])(date, dateFormat === 'MonthDayYear' ? 'MMM d, yyyy' : 'd MMM, yyyy');
|
|
14679
14693
|
};
|
|
14680
14694
|
var formatShortDate = function formatShortDate(date) {
|
|
14681
|
-
|
|
14695
|
+
var dateFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'MonthDayYear';
|
|
14696
|
+
return Object(date_fns_format__WEBPACK_IMPORTED_MODULE_0__["default"])(date, dateFormat === 'MonthDayYear' ? 'MMM d' : 'd MMM');
|
|
14682
14697
|
};
|
|
14683
14698
|
|
|
14684
14699
|
/***/ }),
|
|
@@ -17438,7 +17453,11 @@ var NavigationButtons = function NavigationButtons(props) {
|
|
|
17438
17453
|
_calendarControlProps2 = _calendarControlProps.selectedRange,
|
|
17439
17454
|
selectedRange = _calendarControlProps2 === void 0 ? 'day' : _calendarControlProps2,
|
|
17440
17455
|
onDateSelect = _calendarControlProps.onDateSelect,
|
|
17441
|
-
selected = _calendarControlProps.selected
|
|
17456
|
+
selected = _calendarControlProps.selected,
|
|
17457
|
+
minDate = _calendarControlProps.minDate,
|
|
17458
|
+
maxDate = _calendarControlProps.maxDate,
|
|
17459
|
+
_calendarControlProps3 = _calendarControlProps.hideTooltipIfDisabled,
|
|
17460
|
+
hideTooltipIfDisabled = _calendarControlProps3 === void 0 ? false : _calendarControlProps3;
|
|
17442
17461
|
|
|
17443
17462
|
var backwardsHandler = function backwardsHandler() {
|
|
17444
17463
|
return onDateSelect(Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_4__["moveDate"])(selected, selectedRange, 'backward'));
|
|
@@ -17448,6 +17467,8 @@ var NavigationButtons = function NavigationButtons(props) {
|
|
|
17448
17467
|
return onDateSelect(Object(_CalendarControls_utils__WEBPACK_IMPORTED_MODULE_4__["moveDate"])(selected, selectedRange, 'forward'));
|
|
17449
17468
|
};
|
|
17450
17469
|
|
|
17470
|
+
var isBackwardsDisabled = minDate && selected <= minDate;
|
|
17471
|
+
var isForwardsDisabled = maxDate && selected >= maxDate;
|
|
17451
17472
|
var previousTooltip = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["capitalize"])("Previous ".concat(_RangePicker__WEBPACK_IMPORTED_MODULE_5__["dateRangeLabel"][selectedRange]));
|
|
17452
17473
|
var nextTooltip = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["capitalize"])("Next ".concat(_RangePicker__WEBPACK_IMPORTED_MODULE_5__["dateRangeLabel"][selectedRange]));
|
|
17453
17474
|
return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
|
|
@@ -17457,14 +17478,18 @@ var NavigationButtons = function NavigationButtons(props) {
|
|
|
17457
17478
|
icon: "chevronLeft",
|
|
17458
17479
|
"data-sk-name": "navigate-backwards",
|
|
17459
17480
|
onClick: backwardsHandler,
|
|
17481
|
+
disabled: isBackwardsDisabled,
|
|
17460
17482
|
compact: true,
|
|
17483
|
+
disableTooltip: hideTooltipIfDisabled && isBackwardsDisabled,
|
|
17461
17484
|
tooltipContent: previousTooltip
|
|
17462
17485
|
}), react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(___WEBPACK_IMPORTED_MODULE_3__["IconButton"], {
|
|
17463
17486
|
className: "sk-inline-flex",
|
|
17464
17487
|
icon: "chevronRight",
|
|
17465
17488
|
"data-sk-name": "navigate-forwards",
|
|
17466
17489
|
onClick: forwardsHandler,
|
|
17490
|
+
disabled: isForwardsDisabled,
|
|
17467
17491
|
compact: true,
|
|
17492
|
+
disableTooltip: hideTooltipIfDisabled && isForwardsDisabled,
|
|
17468
17493
|
tooltipContent: nextTooltip
|
|
17469
17494
|
}));
|
|
17470
17495
|
};
|