@wavemaker/react-runtime 11.14.2-rc.6311 → 12.0.0-next.28533
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/actions/base-action.js +5 -7
- package/actions/login-action.js +7 -8
- package/actions/logout-action.js +5 -7
- package/actions/navigation-action.js +32 -10
- package/actions/notification-action.js +22 -8
- package/actions/timer-action.js +13 -15
- package/actions/toast.js +4 -2
- package/actions/toast.service.js +1 -2
- package/components/advanced/carousel/index.js +1 -1
- package/components/advanced/carousel/template.js +1 -1
- package/components/basic/anchor/index.js +26 -9
- package/components/basic/html/index.js +115 -24
- package/components/basic/icon/index.js +2 -1
- package/components/basic/iframe/index.js +2 -1
- package/components/basic/label/index.js +12 -9
- package/components/basic/message/index.js +12 -3
- package/components/basic/picture/index.js +11 -4
- package/components/basic/progress-bar/index.js +1 -1
- package/components/basic/progress-circle/index.js +34 -28
- package/components/basic/progress-circle/props.js +10 -2
- package/components/basic/richtexteditor/index.js +95 -94
- package/components/basic/search/index.js +401 -156
- package/components/basic/search/providers.js +126 -61
- package/components/basic/spinner/index.js +2 -1
- package/components/basic/tree/index.js +34 -34
- package/components/basic/tree/utils.js +10 -4
- package/components/chart/components/barColumnChart/index.js +36 -33
- package/components/chart/components/bubbleChart/index.js +35 -25
- package/components/chart/components/chartLegend/utils.js +2 -1
- package/components/chart/components/cumulativeLineChart/index.js +30 -26
- package/components/chart/components/lineAreaChart/index.js +50 -32
- package/components/chart/components/pieDonutChart/index.js +13 -4
- package/components/chart/hooks/useXAxisConfig.js +15 -8
- package/components/chart/index.js +223 -53
- package/components/chart/utils.js +12 -1
- package/components/constants.js +5 -2
- package/components/container/accordion/accordion-pane/index.js +17 -12
- package/components/container/accordion/index.js +9 -4
- package/components/container/alignment-utils.js +56 -1
- package/components/container/index.js +49 -20
- package/components/container/panel/components/panel-header/index.js +3 -4
- package/components/container/panel/index.js +15 -10
- package/components/container/tabs/index.js +92 -14
- package/components/container/tabs/tab-pane/index.js +15 -8
- package/components/container/tabs/utils.js +51 -0
- package/components/container/wizard/components/StepComponents.js +2 -1
- package/components/container/wizard/components/WizardStep.js +2 -1
- package/components/container/wizard/index.js +64 -35
- package/components/container/wizard/utils.js +46 -1
- package/components/container/wizard/wizard-step/index.js +11 -1
- package/components/data/card/card-content/index.js +1 -1
- package/components/data/form/base-form/index.js +991 -180
- package/components/data/form/base-form/props.js +3 -1
- package/components/data/form/base-form/utils.js +159 -1
- package/components/data/form/dynamic-fields/constant.js +53 -0
- package/components/data/form/dynamic-fields/index.js +10 -45
- package/components/data/form/dynamic-fields/utils.js +37 -2
- package/components/data/form/form-action/index.js +5 -4
- package/components/data/form/form-context.js +5 -1
- package/components/data/form/form-controller/utils.js +84 -0
- package/components/data/form/form-controller/validation-contrustor.js +402 -189
- package/components/data/form/form-controller/withFormController.js +191 -52
- package/components/data/form/form-field/base-field.js +54 -33
- package/components/data/form/form-field/index.js +28 -5
- package/components/data/form/form-header/index.js +3 -4
- package/components/data/form/index.js +20 -1
- package/components/data/list/components/ListDND.js +2 -1
- package/components/data/list/components/ListItem.js +6 -2
- package/components/data/list/components/ListItemWithTemplate.js +46 -2
- package/components/data/list/components/ListItems.js +17 -26
- package/components/data/list/components/ListPagination.js +3 -3
- package/components/data/list/components/StandardListItems.js +3 -4
- package/components/data/list/hooks/useListEffects.js +55 -14
- package/components/data/list/hooks/useListEventHandlers.js +3 -1
- package/components/data/list/hooks/useListState.js +3 -1
- package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
- package/components/data/list/index.js +74 -55
- package/components/data/list/utils/list-helpers.js +73 -35
- package/components/data/list/utils/list-widget-methods.js +138 -95
- package/components/data/live-filter/index.js +26 -15
- package/components/data/live-form/index.js +23 -7
- package/components/data/live-form/props.js +1 -1
- package/components/data/pagination/components/BasicPagination.js +71 -16
- package/components/data/pagination/components/PageSizeSelector.js +8 -3
- package/components/data/pagination/components/TotalRecords.js +1 -5
- package/components/data/pagination/hooks/usePagination.js +349 -66
- package/components/data/pagination/index.js +137 -19
- package/components/data/table/components/AddNewRow.js +5 -1
- package/components/data/table/components/EditableCell.js +2 -2
- package/components/data/table/components/RowCells.js +64 -0
- package/components/data/table/components/RowExpansionButton.js +2 -2
- package/components/data/table/components/SummaryCell.js +111 -0
- package/components/data/table/components/SummaryRow.js +54 -0
- package/components/data/table/components/SummaryRowFooter.js +46 -0
- package/components/data/table/components/TableBody.js +61 -59
- package/components/data/table/components/TableDataRow.js +109 -0
- package/components/data/table/components/TableFilters.js +225 -121
- package/components/data/table/components/TableHeader.js +291 -23
- package/components/data/table/components/TablePanelHeading.js +139 -8
- package/components/data/table/components/index.js +22 -1
- package/components/data/table/hooks/use-edited-rows.js +141 -0
- package/components/data/table/hooks/useCellState.js +5 -12
- package/components/data/table/hooks/useFormWidget.js +58 -51
- package/components/data/table/hooks/usePaginationState.js +45 -24
- package/components/data/table/hooks/usePanelStructure.js +4 -4
- package/components/data/table/hooks/useRowHandlers.js +39 -5
- package/components/data/table/hooks/useRowSelection.js +244 -50
- package/components/data/table/hooks/useServerSideSorting.js +81 -37
- package/components/data/table/hooks/useTableColumns.js +211 -118
- package/components/data/table/hooks/useTableData.js +54 -9
- package/components/data/table/hooks/useTableEdit.js +272 -97
- package/components/data/table/hooks/useTableEffects.js +31 -13
- package/components/data/table/hooks/useTableFilter.js +1 -1
- package/components/data/table/hooks/useTableInitialization.js +23 -22
- package/components/data/table/hooks/useTableState.js +11 -5
- package/components/data/table/hooks/useTableStateManager.js +140 -65
- package/components/data/table/index.js +637 -274
- package/components/data/table/live-table/index.js +54 -22
- package/components/data/table/table-action/index.js +1 -1
- package/components/data/table/table-group/index.js +26 -0
- package/components/data/table/table-row-action/index.js +32 -18
- package/components/data/table/utils/buildSelectionColumns.js +12 -21
- package/components/data/table/utils/columnBuilder.js +29 -14
- package/components/data/table/utils/columnProxy.js +68 -1
- package/components/data/table/utils/constants.js +6 -2
- package/components/data/table/utils/crud-handlers.js +68 -63
- package/components/data/table/utils/groupHeaderUtils.js +102 -0
- package/components/data/table/utils/index.js +210 -21
- package/components/data/table/utils/renderDisplayCell.js +6 -6
- package/components/data/table/utils/selectionUtils.js +25 -26
- package/components/data/table/utils/validation.js +1 -0
- package/components/data/utils/filter-field-util.js +3 -3
- package/components/dialogs/alert-dialog/index.js +1 -1
- package/components/dialogs/confirm-dialog/index.js +1 -1
- package/components/dialogs/dialog/index.js +4 -1
- package/components/dialogs/dialog-content/index.js +3 -1
- package/components/dialogs/dialog-header/index.js +2 -2
- package/components/dialogs/iframe-dialog/index.js +11 -5
- package/components/dialogs/index.js +1 -1
- package/components/dialogs/login-dialog/index.js +1 -1
- package/components/dialogs/page-dialog/index.js +1 -1
- package/components/form/button/index.js +33 -7
- package/components/input/calendar/index.js +18 -6
- package/components/input/chips/index.js +99 -28
- package/components/input/chips/utils.js +34 -4
- package/components/input/color-picker/index.js +74 -25
- package/components/input/composite/index.js +3 -3
- package/components/input/currency/index.js +35 -49
- package/components/input/default/checkbox/index.js +23 -28
- package/components/input/default/checkboxset/index.js +38 -18
- package/components/input/default/checkboxset/utils.js +30 -0
- package/components/input/default/radioset/index.js +36 -39
- package/components/input/default/switch/index.js +30 -13
- package/components/input/epoch/date/index.js +130 -69
- package/components/input/epoch/date/utils.js +94 -1
- package/components/input/epoch/datetime/index.js +72 -22
- package/components/input/epoch/datetime/utils.js +49 -10
- package/components/input/epoch/time/index.js +68 -19
- package/components/input/epoch/time/utils.js +62 -14
- package/components/input/fileupload/Utils.js +12 -7
- package/components/input/fileupload/components/MultiUpload.js +2 -6
- package/components/input/fileupload/components/SingleUpload.js +3 -7
- package/components/input/fileupload/index.js +6 -10
- package/components/input/fileupload/useFileUpload.js +16 -5
- package/components/input/number/index.js +158 -43
- package/components/input/rating/index.js +90 -7
- package/components/input/select/index.js +147 -70
- package/components/input/slider/index.js +84 -26
- package/components/input/text/index.js +38 -18
- package/components/input/text/util.js +283 -130
- package/components/input/textarea/index.js +13 -10
- package/components/input/upload/index.js +124 -0
- package/components/input/upload/props.js +5 -0
- package/components/input/util/index.js +11 -0
- package/components/navbar/index.js +51 -3
- package/components/navbar/nav/index.js +46 -16
- package/components/navbar/nav-item/index.js +11 -5
- package/components/navigation/menu/components/ListItems.js +3 -0
- package/components/navigation/menu/constants.js +2 -1
- package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
- package/components/navigation/menu/index.js +326 -188
- package/components/navigation/menu/utils/action-task.js +14 -0
- package/components/navigation/menu/utils/role-filter.js +76 -0
- package/components/navigation/popover/index.js +99 -26
- package/components/page/partial-container/index.js +34 -5
- package/components/prefab/index.js +2 -4
- package/context/PrefabContext.js +10 -6
- package/context/WidgetProvider.js +30 -31
- package/core/app.service.js +1 -1
- package/core/constants/events.js +57 -1
- package/core/dialog.service.js +1 -2
- package/core/event-notifier.js +1 -2
- package/core/formatter/array-formatters.js +33 -0
- package/core/formatter/date-formatters.js +2 -4
- package/core/formatter/index.js +2 -1
- package/core/formatter/number-formatters.js +5 -10
- package/core/formatter/security-formatters.js +2 -4
- package/core/formatter/string-formatters.js +3 -6
- package/core/proxy-service.js +84 -13
- package/core/script-registry.js +108 -48
- package/core/util/common.js +4 -4
- package/core/util/compare.js +30 -0
- package/core/util/dom.js +8 -8
- package/core/util/index.js +16 -6
- package/core/util/safe-is-equal.js +156 -0
- package/core/util/security.js +1 -2
- package/core/util/utils.js +16 -7
- package/higherOrder/BaseApp.js +108 -65
- package/higherOrder/BaseDateTime.js +31 -13
- package/higherOrder/BasePage.js +268 -144
- package/higherOrder/BasePartial.js +1 -1
- package/higherOrder/BasePrefab.js +33 -15
- package/higherOrder/DataNav.js +99 -16
- package/higherOrder/helper.js +5 -0
- package/higherOrder/withBaseWrapper.js +41 -28
- package/hooks/useAuth.js +11 -5
- package/hooks/useHttp.js +280 -94
- package/mui-config/theme-provider.js +1 -1
- package/mui-config/theme.js +1 -1
- package/package-lock.json +824 -724
- package/package.json +8 -8
- package/store/bindActions/i18nActions.js +18 -0
- package/store/index.js +3 -1
- package/store/slices/appConfigSlice.js +2 -2
- package/store/slices/authSlice.js +31 -28
- package/store/slices/i18nSlice.js +2 -2
- package/store/slices/navigationSlice.js +35 -0
- package/store/viewport.service.js +255 -0
- package/utils/attr.js +35 -0
- package/utils/dataset-util.js +1 -2
- package/utils/form-state.util.js +43 -12
- package/utils/form-utils.js +47 -2
- package/utils/format-util.js +28 -13
- package/utils/page-params-util.js +33 -1
- package/utils/state-persistance.js +72 -13
- package/utils/transformedDataset-utils.js +35 -24
- package/variables/base-variable.js +12 -14
- package/variables/crud-variable.js +225 -0
- package/variables/live-variable.js +56 -20
- package/variables/metadata.service.js +123 -0
- package/variables/model-variable.js +21 -15
- package/variables/service-variable.js +88 -83
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -16,37 +17,13 @@ var _utils = require("./utils");
|
|
|
16
17
|
var _DatePickerPopover = _interopRequireDefault(require("./components/DatePickerPopover"));
|
|
17
18
|
var _store = require("@wavemaker/react-runtime/store");
|
|
18
19
|
var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
|
|
19
|
-
var _excluded = ["name", "hint", "shortcutkey", "datavalue", "width", "arialabel", "invokeOnChange", "handleKeyDown", "getDateObj", "updatePrevDatavalue", "updateBoundVariable", "onChange", "onClick", "onFocus", "onBlur", "onMouseEnter", "onMouseLeave", "onBeforeload", "placeholder", "tabindex", "datepattern", "outputformat", "required", "excludedays", "excludedates", "showweeks", "showbuttonbar", "autofocus", "readonly", "disabled", "showdropdownon", "adaptiveposition", "selectfromothermonth", "todaybutton", "clearbutton", "todaybuttonlabel", "clearbuttonlabel", "showcustompicker", "showdateformatasplaceholder", "viewmode", "dataentrymode", "listener", "className", "styles"];
|
|
20
|
+
var _excluded = ["name", "hint", "shortcutkey", "datavalue", "width", "arialabel", "invokeOnChange", "handleKeyDown", "getDateObj", "updatePrevDatavalue", "updateBoundVariable", "onChange", "onClick", "onFocus", "onBlur", "onMouseEnter", "onMouseLeave", "onBeforeload", "placeholder", "tabindex", "datepattern", "outputformat", "required", "excludedays", "excludedates", "showweeks", "showbuttonbar", "autofocus", "readonly", "disabled", "showdropdownon", "adaptiveposition", "selectfromothermonth", "todaybutton", "clearbutton", "todaybuttonlabel", "clearbuttonlabel", "showcustompicker", "showdateformatasplaceholder", "viewmode", "dataentrymode", "listener", "className", "styles", "validators", "validationmessage"];
|
|
20
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
21
22
|
var __jsx = _react["default"].createElement;
|
|
22
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
24
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
25
|
// Types
|
|
25
26
|
|
|
26
|
-
// Custom Hooks
|
|
27
|
-
var useDateValidation = function useDateValidation(excludedDays, excludedDates, mindate, maxdate, getDateObj) {
|
|
28
|
-
return (0, _react.useCallback)(function (date) {
|
|
29
|
-
if (!(date !== null && date !== void 0 && date.isValid())) return true;
|
|
30
|
-
|
|
31
|
-
// Check excluded days
|
|
32
|
-
if (excludedDays.includes(date.day())) return true;
|
|
33
|
-
|
|
34
|
-
// Check excluded dates
|
|
35
|
-
var dateFormatted = date.format("YYYY-MM-DD");
|
|
36
|
-
var isExcluded = excludedDates.some(function (excludedDate) {
|
|
37
|
-
return excludedDate && (0, _momentTimezone["default"])(excludedDate).format("YYYY-MM-DD") === dateFormatted;
|
|
38
|
-
});
|
|
39
|
-
if (isExcluded) return true;
|
|
40
|
-
|
|
41
|
-
// Check date range
|
|
42
|
-
var minDateObj = mindate ? (0, _momentTimezone["default"])(getDateObj === null || getDateObj === void 0 ? void 0 : getDateObj(mindate)) : null;
|
|
43
|
-
var maxDateObj = maxdate ? (0, _momentTimezone["default"])(getDateObj === null || getDateObj === void 0 ? void 0 : getDateObj(maxdate)) : null;
|
|
44
|
-
if (minDateObj !== null && minDateObj !== void 0 && minDateObj.isValid() && date.isBefore(minDateObj, "day")) return true;
|
|
45
|
-
if (maxDateObj !== null && maxDateObj !== void 0 && maxDateObj.isValid() && date.isAfter(maxDateObj, "day")) return true;
|
|
46
|
-
return false;
|
|
47
|
-
}, [excludedDays, excludedDates, mindate, maxdate, getDateObj]);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
27
|
// Main Component
|
|
51
28
|
var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
52
29
|
// Merge props with defaults
|
|
@@ -74,10 +51,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
74
51
|
placeholder = _props$placeholder === void 0 ? "Select Date" : _props$placeholder,
|
|
75
52
|
_props$tabindex = _props.tabindex,
|
|
76
53
|
tabindex = _props$tabindex === void 0 ? 0 : _props$tabindex,
|
|
77
|
-
|
|
78
|
-
datepattern = _props$datepattern === void 0 ? (0, _store.useAppSelector)(function (state) {
|
|
79
|
-
return state.i18n.dateFormat || "MMM d, y";
|
|
80
|
-
}) : _props$datepattern,
|
|
54
|
+
datepatternProp = _props.datepattern,
|
|
81
55
|
_props$outputformat = _props.outputformat,
|
|
82
56
|
outputformat = _props$outputformat === void 0 ? "yyyy-MM-dd" : _props$outputformat,
|
|
83
57
|
_props$required = _props.required,
|
|
@@ -121,7 +95,16 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
121
95
|
listener = _props.listener,
|
|
122
96
|
className = _props.className,
|
|
123
97
|
styles = _props.styles,
|
|
98
|
+
_props$validators = _props.validators,
|
|
99
|
+
validators = _props$validators === void 0 ? [] : _props$validators,
|
|
100
|
+
validationmessage = _props.validationmessage,
|
|
124
101
|
restProps = (0, _objectWithoutProperties2["default"])(_props, _excluded);
|
|
102
|
+
var defaultDateFormat = (0, _store.useAppSelector)(function (state) {
|
|
103
|
+
return state.i18n.dateFormat;
|
|
104
|
+
}) || "MMM d, y";
|
|
105
|
+
var datepattern = (0, _react.useMemo)(function () {
|
|
106
|
+
return datepatternProp !== null && datepatternProp !== void 0 ? datepatternProp : defaultDateFormat;
|
|
107
|
+
}, [datepatternProp, defaultDateFormat]);
|
|
125
108
|
var currentLocale = (0, _store.useAppSelector)(function (state) {
|
|
126
109
|
return state.i18n.selectedLocale;
|
|
127
110
|
});
|
|
@@ -141,15 +124,21 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
141
124
|
var _useState5 = (0, _react.useState)(false),
|
|
142
125
|
dateNotInRange = _useState5[0],
|
|
143
126
|
setDateNotInRange = _useState5[1];
|
|
144
|
-
var _useState6 = (0, _react.useState)(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var _useState7 = (0, _react.useState)(
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
var _useState8 = (0, _react.useState)(
|
|
151
|
-
|
|
152
|
-
|
|
127
|
+
var _useState6 = (0, _react.useState)(""),
|
|
128
|
+
validationFailureMessage = _useState6[0],
|
|
129
|
+
setValidationFailureMessage = _useState6[1];
|
|
130
|
+
var _useState7 = (0, _react.useState)(viewmode),
|
|
131
|
+
calendarViewMode = _useState7[0],
|
|
132
|
+
setCalendarViewMode = _useState7[1];
|
|
133
|
+
var _useState8 = (0, _react.useState)((0, _momentTimezone["default"])()),
|
|
134
|
+
calendarDate = _useState8[0],
|
|
135
|
+
setCalendarDate = _useState8[1];
|
|
136
|
+
var _useState9 = (0, _react.useState)(null),
|
|
137
|
+
selectedDate = _useState9[0],
|
|
138
|
+
setSelectedDate = _useState9[1];
|
|
139
|
+
var _useState0 = (0, _react.useState)(false),
|
|
140
|
+
isCurrentDate = _useState0[0],
|
|
141
|
+
setIsCurrentDate = _useState0[1];
|
|
153
142
|
|
|
154
143
|
// Refs
|
|
155
144
|
var datepickerRef = (0, _react.useRef)(null);
|
|
@@ -164,9 +153,36 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
164
153
|
return (0, _utils.parseExcludedDates)(excludedates, getDateObj);
|
|
165
154
|
}, [excludedates, getDateObj]);
|
|
166
155
|
var dateValue = (0, _react.useMemo)(function () {
|
|
156
|
+
if (datavalue === "CURRENT_DATE") {
|
|
157
|
+
setIsCurrentDate(true);
|
|
158
|
+
}
|
|
167
159
|
return getDateObj(datavalue);
|
|
168
160
|
}, [datavalue, getDateObj]);
|
|
169
|
-
|
|
161
|
+
|
|
162
|
+
// Parse min/max dates
|
|
163
|
+
var minDateObj = (0, _react.useMemo)(function () {
|
|
164
|
+
return restProps.mindate ? getDateObj(restProps.mindate) : null;
|
|
165
|
+
}, [restProps.mindate, getDateObj]);
|
|
166
|
+
var maxDateObj = (0, _react.useMemo)(function () {
|
|
167
|
+
return restProps.maxdate ? getDateObj(restProps.maxdate) : null;
|
|
168
|
+
}, [restProps.maxdate, getDateObj]);
|
|
169
|
+
|
|
170
|
+
// Unified validation function - handles both validation messages and UI disabling
|
|
171
|
+
var validateDateWithProps = (0, _react.useCallback)(function (date) {
|
|
172
|
+
if (!date) return true;
|
|
173
|
+
var validation = (0, _utils.validateDate)(date, minDateObj, maxDateObj, excludedDaysToDisable, excludedDatesToDisable, validators, validationmessage);
|
|
174
|
+
setDateNotInRange(validation.isOutOfRange);
|
|
175
|
+
setValidationFailureMessage(validation.validationMessage || "");
|
|
176
|
+
setInvalidDateTimeFormat(false);
|
|
177
|
+
return validation.isValid;
|
|
178
|
+
}, [minDateObj, maxDateObj, excludedDaysToDisable, excludedDatesToDisable, validators, validationmessage]);
|
|
179
|
+
|
|
180
|
+
// Function for calendar UI - returns boolean for disabling dates
|
|
181
|
+
var isDateDisabled = (0, _react.useCallback)(function (date) {
|
|
182
|
+
if (!(date !== null && date !== void 0 && date.isValid())) return false;
|
|
183
|
+
var validation = (0, _utils.validateDate)(date, minDateObj, maxDateObj, excludedDaysToDisable, excludedDatesToDisable, validators, validationmessage);
|
|
184
|
+
return validation.isDisabled || false;
|
|
185
|
+
}, [minDateObj, maxDateObj, excludedDaysToDisable, excludedDatesToDisable, validators, validationmessage]);
|
|
170
186
|
var isNavigationDisabled = (0, _react.useMemo)(function () {
|
|
171
187
|
if (!restProps.mindate || !restProps.maxdate) return false;
|
|
172
188
|
var minMoment = (0, _momentTimezone["default"])(getDateObj(restProps.mindate));
|
|
@@ -193,6 +209,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
193
209
|
|
|
194
210
|
// Effects
|
|
195
211
|
(0, _react.useEffect)(function () {
|
|
212
|
+
if (invalidDateTimeFormat) return;
|
|
196
213
|
var displayValue = getDisplayValue();
|
|
197
214
|
setInputValue(displayValue);
|
|
198
215
|
if (dateValue) {
|
|
@@ -200,17 +217,27 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
200
217
|
setSelectedDate(momentDateValue);
|
|
201
218
|
setCalendarDate(momentDateValue);
|
|
202
219
|
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
203
|
-
listener.onChange(name
|
|
220
|
+
listener.onChange(name || props.fieldName, {
|
|
204
221
|
displayValue: displayValue,
|
|
205
222
|
datavalue: (0, _utils.formatDate)(momentDateValue.toDate(), outputformat),
|
|
206
223
|
timestamp: (0, _utils.formatDate)(momentDateValue.toDate(), "timestamp")
|
|
207
|
-
})
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
} else if (props.maxdate) {
|
|
227
|
+
var maxDate = (0, _momentTimezone["default"])(props.maxdate);
|
|
228
|
+
|
|
229
|
+
// Get the current date
|
|
230
|
+
var currentDate = (0, _momentTimezone["default"])();
|
|
231
|
+
// If maxDate is valid and less than current date, set to maxDate
|
|
232
|
+
if (maxDate.isValid() && maxDate.isBefore(currentDate)) {
|
|
233
|
+
setSelectedDate(maxDate);
|
|
234
|
+
setCalendarDate(maxDate);
|
|
208
235
|
}
|
|
209
236
|
} else {
|
|
210
237
|
setSelectedDate(null);
|
|
211
238
|
setCalendarDate((0, _momentTimezone["default"])());
|
|
212
239
|
}
|
|
213
|
-
}, [dateValue, getDisplayValue, datavalue]);
|
|
240
|
+
}, [dateValue, getDisplayValue, datavalue, props.maxdate]);
|
|
214
241
|
(0, _react.useEffect)(function () {
|
|
215
242
|
if (autofocus && inputRef.current) {
|
|
216
243
|
var timer = setTimeout(function () {
|
|
@@ -228,7 +255,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
228
255
|
|
|
229
256
|
// Update input value when locale changes
|
|
230
257
|
(0, _react.useEffect)(function () {
|
|
231
|
-
if (dateValue) {
|
|
258
|
+
if (dateValue && !invalidDateTimeFormat) {
|
|
232
259
|
var newDisplayValue = getDisplayValue();
|
|
233
260
|
setInputValue(newDisplayValue);
|
|
234
261
|
|
|
@@ -237,7 +264,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
237
264
|
listener.Widgets[name].displayValue = newDisplayValue;
|
|
238
265
|
}
|
|
239
266
|
}
|
|
240
|
-
}, [currentLocale, getDisplayValue, dateValue, name,
|
|
267
|
+
}, [currentLocale, getDisplayValue, dateValue, name, invalidDateTimeFormat]);
|
|
241
268
|
|
|
242
269
|
// Call onBeforeload callback on component mount
|
|
243
270
|
(0, _react.useEffect)(function () {
|
|
@@ -248,7 +275,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
248
275
|
onBeforeload(syntheticEvent, (_props$listener2 = props.listener) === null || _props$listener2 === void 0 || (_props$listener2 = _props$listener2.Widgets) === null || _props$listener2 === void 0 ? void 0 : _props$listener2[name]);
|
|
249
276
|
onBeforeloadExecutedRef.current = true;
|
|
250
277
|
}
|
|
251
|
-
}, [onBeforeload, name
|
|
278
|
+
}, [onBeforeload, name]);
|
|
252
279
|
|
|
253
280
|
// Event Handlers
|
|
254
281
|
var handleOpen = (0, _react.useCallback)(function (event) {
|
|
@@ -262,7 +289,8 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
262
289
|
}
|
|
263
290
|
setCalendarViewMode(viewmode === "month" ? "month" : viewmode);
|
|
264
291
|
}, [disabled, readonly, selectedDate, dateValue, viewmode]);
|
|
265
|
-
var clearDateValue = function
|
|
292
|
+
var clearDateValue = (0, _react.useCallback)(function (invokeOnChange, updatePrevDatavalue, updateBoundVariable, setInputValue, setSelectedDate, setInvalidDateTimeFormat, setDateNotInRange) {
|
|
293
|
+
var oldValue = inputValue;
|
|
266
294
|
invokeOnChange === null || invokeOnChange === void 0 || invokeOnChange("");
|
|
267
295
|
updatePrevDatavalue === null || updatePrevDatavalue === void 0 || updatePrevDatavalue("");
|
|
268
296
|
updateBoundVariable === null || updateBoundVariable === void 0 || updateBoundVariable("");
|
|
@@ -270,11 +298,26 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
270
298
|
setSelectedDate === null || setSelectedDate === void 0 || setSelectedDate(null);
|
|
271
299
|
setInvalidDateTimeFormat === null || setInvalidDateTimeFormat === void 0 || setInvalidDateTimeFormat(false);
|
|
272
300
|
setDateNotInRange === null || setDateNotInRange === void 0 || setDateNotInRange(false);
|
|
273
|
-
|
|
301
|
+
setValidationFailureMessage === null || setValidationFailureMessage === void 0 || setValidationFailureMessage("");
|
|
302
|
+
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
303
|
+
listener.onChange(props.fieldName || name, _objectSpread(_objectSpread({}, props), {}, {
|
|
304
|
+
datavalue: "",
|
|
305
|
+
timestamp: null
|
|
306
|
+
}));
|
|
307
|
+
}
|
|
308
|
+
if (onChange && name && listener !== null && listener !== void 0 && listener.Widgets[name]) {
|
|
309
|
+
onChange({}, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], "", oldValue);
|
|
310
|
+
}
|
|
311
|
+
}, [name, onChange, props, inputValue]);
|
|
274
312
|
var handleDateSelection = function handleDateSelection(date) {
|
|
275
313
|
var shouldClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
314
|
+
var dateObj = date.toDate();
|
|
315
|
+
if (!validateDateWithProps(dateObj)) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
276
318
|
setDateNotInRange(false);
|
|
277
319
|
setInvalidDateTimeFormat(false);
|
|
320
|
+
setValidationFailureMessage("");
|
|
278
321
|
setSelectedDate(date.clone());
|
|
279
322
|
updateDateValue(date);
|
|
280
323
|
setCalendarDate(date);
|
|
@@ -286,8 +329,10 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
286
329
|
var isRequired = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
287
330
|
if (errorType === "dateNotInRange") {
|
|
288
331
|
setDateNotInRange(true);
|
|
332
|
+
setValidationFailureMessage(validationmessage || "Date not in range");
|
|
289
333
|
} else if (errorType === "invalidFormat" && isRequired) {
|
|
290
334
|
setInvalidDateTimeFormat(true);
|
|
335
|
+
setValidationFailureMessage(validationmessage || "Invalid date format");
|
|
291
336
|
}
|
|
292
337
|
};
|
|
293
338
|
var handleClose = (0, _react.useCallback)(function () {
|
|
@@ -312,7 +357,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
312
357
|
listener.Widgets[name].displayValue = displayValue;
|
|
313
358
|
}
|
|
314
359
|
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
315
|
-
listener.onChange(name, _objectSpread(_objectSpread({}, props), {}, {
|
|
360
|
+
listener.onChange(props.fieldName || name, _objectSpread(_objectSpread({}, props), {}, {
|
|
316
361
|
datavalue: outputValue,
|
|
317
362
|
timestamp: (0, _utils.formatDate)(date.toDate(), "timestamp")
|
|
318
363
|
}));
|
|
@@ -325,12 +370,14 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
325
370
|
if (!(date !== null && date !== void 0 && date.isValid())) return;
|
|
326
371
|
setCalendarDate(date);
|
|
327
372
|
var isMonthOrYearView = viewmode === "month" || viewmode === "year";
|
|
328
|
-
if (!isMonthOrYearView
|
|
329
|
-
|
|
330
|
-
|
|
373
|
+
if (!isMonthOrYearView) {
|
|
374
|
+
var dateObj = date.toDate();
|
|
375
|
+
if (!validateDateWithProps(dateObj)) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
331
378
|
}
|
|
332
379
|
handleDateSelection(date, true);
|
|
333
|
-
}, [viewmode,
|
|
380
|
+
}, [viewmode, validateDateWithProps, handleDateSelection]);
|
|
334
381
|
var handleMonthChange = (0, _react.useCallback)(function (value) {
|
|
335
382
|
if (!(value !== null && value !== void 0 && value.isValid())) return;
|
|
336
383
|
if (viewmode === "month") {
|
|
@@ -366,14 +413,21 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
366
413
|
var parsedDate = datepattern === "timestamp" ? (0, _momentTimezone["default"])(parseInt(value, 10)) : (0, _momentTimezone["default"])(value, (0, _utils.convertToMomentFormat)(datepattern), true);
|
|
367
414
|
if (!parsedDate.isValid()) {
|
|
368
415
|
handleValidationError("invalidFormat", props.required);
|
|
416
|
+
if (onChange && name && listener !== null && listener !== void 0 && listener.Widgets[name] && props.formfield) {
|
|
417
|
+
onChange({}, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], value, inputValue, false);
|
|
418
|
+
}
|
|
369
419
|
return;
|
|
370
420
|
}
|
|
371
|
-
|
|
372
|
-
|
|
421
|
+
setInvalidDateTimeFormat(false);
|
|
422
|
+
var dateObj = parsedDate.toDate();
|
|
423
|
+
if (!validateDateWithProps(dateObj)) {
|
|
424
|
+
if (onChange && name && listener !== null && listener !== void 0 && listener.Widgets[name] && props.formfield) {
|
|
425
|
+
onChange({}, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], value, inputValue, false);
|
|
426
|
+
}
|
|
373
427
|
return;
|
|
374
428
|
}
|
|
375
429
|
handleDateSelection(parsedDate, false);
|
|
376
|
-
}, [dataentrymode, datepattern,
|
|
430
|
+
}, [dataentrymode, datepattern, validateDateWithProps, invokeOnChange, updatePrevDatavalue, updateBoundVariable, inputValue]);
|
|
377
431
|
var handleInputKeyDown = (0, _react.useCallback)(function (event) {
|
|
378
432
|
var allowedKeys = ["Tab", "Escape", "Enter", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
379
433
|
if (dataentrymode === "picker" && !allowedKeys.includes(event.key)) {
|
|
@@ -390,6 +444,10 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
390
444
|
}
|
|
391
445
|
var parsedDate = (0, _momentTimezone["default"])(inputValue, datepattern, true);
|
|
392
446
|
if (parsedDate.isValid()) {
|
|
447
|
+
var dateObj = parsedDate.toDate();
|
|
448
|
+
if (!validateDateWithProps(dateObj)) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
393
451
|
handleCalendarChange(parsedDate);
|
|
394
452
|
} else {
|
|
395
453
|
handleValidationError("invalidFormat", props.required);
|
|
@@ -402,7 +460,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
402
460
|
if (showPicker) handleClose();
|
|
403
461
|
break;
|
|
404
462
|
}
|
|
405
|
-
}, [dataentrymode, datepattern, inputValue, showPicker, handleKeyDown, handleCalendarChange, handleClose, invokeOnChange, updatePrevDatavalue, updateBoundVariable]);
|
|
463
|
+
}, [dataentrymode, datepattern, inputValue, showPicker, handleKeyDown, handleCalendarChange, handleClose, validateDateWithProps, invokeOnChange, updatePrevDatavalue, updateBoundVariable]);
|
|
406
464
|
var handleTodayClick = (0, _react.useCallback)(function () {
|
|
407
465
|
handleCalendarChange((0, _momentTimezone["default"])());
|
|
408
466
|
}, [handleCalendarChange]);
|
|
@@ -425,33 +483,36 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
425
483
|
}, [shouldOpenOnInput, readonly, disabled, handleIconButtonClick]);
|
|
426
484
|
|
|
427
485
|
// Render
|
|
428
|
-
return __jsx(_material.Box, {
|
|
429
|
-
className: "ng-pristine ng-valid app-date input-group ng-touched",
|
|
486
|
+
return __jsx(_material.Box, (0, _extends2["default"])({
|
|
487
|
+
className: "ng-pristine ng-valid app-date input-group ng-touched ".concat(className),
|
|
430
488
|
ref: datepickerRef,
|
|
431
|
-
style: (0, _utils.getWidthStyle)(width),
|
|
432
|
-
title: hint
|
|
433
|
-
|
|
489
|
+
style: _objectSpread(_objectSpread({}, (0, _utils.getWidthStyle)(width)), styles),
|
|
490
|
+
title: hint,
|
|
491
|
+
hidden: props.hidden
|
|
492
|
+
}, readonly && {
|
|
493
|
+
readOnly: true
|
|
494
|
+
}, disabled && {
|
|
495
|
+
disabled: true
|
|
496
|
+
}), __jsx(_material.TextField, {
|
|
434
497
|
inputRef: inputRef,
|
|
435
498
|
fullWidth: true,
|
|
436
499
|
placeholder: getPlaceholderText(),
|
|
437
500
|
disabled: disabled || readonly,
|
|
438
501
|
"aria-readonly": readonly,
|
|
439
|
-
error: invalidDateTimeFormat || dateNotInRange,
|
|
440
|
-
helperText: invalidDateTimeFormat ? "Invalid date format" : dateNotInRange ? "Date not in valid range" : "",
|
|
502
|
+
error: validationFailureMessage || invalidDateTimeFormat || dateNotInRange,
|
|
503
|
+
helperText: validationFailureMessage || (invalidDateTimeFormat ? "Invalid date format" : dateNotInRange ? "Date not in valid range" : ""),
|
|
441
504
|
slotProps: {
|
|
442
505
|
htmlInput: {
|
|
443
506
|
"aria-label": arialabel || "Date input ".concat(getPlaceholderText()),
|
|
444
507
|
tabIndex: tabindex,
|
|
445
508
|
accessKey: shortcutkey,
|
|
446
|
-
"aria-invalid": invalidDateTimeFormat || dateNotInRange,
|
|
509
|
+
"aria-invalid": validationFailureMessage || invalidDateTimeFormat || dateNotInRange,
|
|
447
510
|
readOnly: readonly || dataentrymode === "picker",
|
|
448
511
|
required: required,
|
|
449
512
|
autoFocus: autofocus,
|
|
450
513
|
name: name,
|
|
451
|
-
className: "form-control app-textbox app-dateinput display-input
|
|
452
|
-
style: _objectSpread(
|
|
453
|
-
cursor: dataentrymode === "picker" ? "pointer" : "text"
|
|
454
|
-
}, (0, _utils.getWidthStyle)(width)), styles),
|
|
514
|
+
className: "form-control app-textbox app-dateinput display-input",
|
|
515
|
+
style: _objectSpread({}, (0, _utils.getWidthStyle)(width)),
|
|
455
516
|
onMouseEnter: function onMouseEnter(event) {
|
|
456
517
|
return _onMouseEnter && name && _onMouseEnter(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
|
|
457
518
|
},
|
|
@@ -476,7 +537,7 @@ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
476
537
|
className: "input-group-btn"
|
|
477
538
|
}, __jsx(_material.Button, {
|
|
478
539
|
type: "button",
|
|
479
|
-
className: "btn btn-default btn-time
|
|
540
|
+
className: "btn btn-default btn-time",
|
|
480
541
|
tabIndex: tabindex,
|
|
481
542
|
disabled: disabled || readonly,
|
|
482
543
|
"aria-label": inputValue ? "Change Date ".concat(inputValue) : "Choose date by pressing enter",
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.parseExcludedDays = exports.parseExcludedDates = exports.getWidthStyle = exports.formatDate = exports.defaultGetDateObj = exports.createFormatTokenRegex = exports.convertToMomentFormat = exports.DATE_FORMAT_MAPPING = void 0;
|
|
8
|
+
exports.validateDate = validateDate;
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
8
10
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
9
11
|
// Constants
|
|
10
12
|
var DATE_FORMAT_MAPPING = exports.DATE_FORMAT_MAPPING = {
|
|
@@ -105,4 +107,95 @@ var getWidthStyle = exports.getWidthStyle = function getWidthStyle(width) {
|
|
|
105
107
|
};
|
|
106
108
|
}
|
|
107
109
|
return {};
|
|
108
|
-
};
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// Get validator error message
|
|
113
|
+
function getValidatorErrorMessage(validators, validatorType) {
|
|
114
|
+
if (!validators || validators.length === 0) return undefined;
|
|
115
|
+
var validator = validators.find(function (v) {
|
|
116
|
+
return (0, _typeof2["default"])(v) === "object" && v !== null && "type" in v && v.type === validatorType;
|
|
117
|
+
});
|
|
118
|
+
if (validator && (0, _typeof2["default"])(validator) === "object" && "errorMessage" in validator) {
|
|
119
|
+
var errorMessage = validator.errorMessage;
|
|
120
|
+
if (typeof errorMessage === "string") {
|
|
121
|
+
return errorMessage;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Unified date validation function - handles both UI disabling and validation messages
|
|
128
|
+
function validateDate(date, minDateObj, maxDateObj, excludedDaysArray, excludedDatesArray) {
|
|
129
|
+
var validators = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
|
|
130
|
+
var validationmessage = arguments.length > 6 ? arguments[6] : undefined;
|
|
131
|
+
if (!date) return {
|
|
132
|
+
isValid: true,
|
|
133
|
+
isOutOfRange: false,
|
|
134
|
+
isDisabled: false
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Convert to moment for consistent handling
|
|
138
|
+
var dateMoment = _momentTimezone["default"].isMoment(date) ? date : (0, _momentTimezone["default"])(date);
|
|
139
|
+
if (!dateMoment.isValid()) return {
|
|
140
|
+
isValid: true,
|
|
141
|
+
isOutOfRange: false,
|
|
142
|
+
isDisabled: false
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// Check min date
|
|
146
|
+
if (minDateObj && dateMoment.startOf("day").valueOf() < (0, _momentTimezone["default"])(minDateObj).startOf("day").valueOf()) {
|
|
147
|
+
var validatorMessage = getValidatorErrorMessage(validators, "mindate");
|
|
148
|
+
var errorMessage = validatorMessage || validationmessage || "Date is before minimum date";
|
|
149
|
+
return {
|
|
150
|
+
isValid: false,
|
|
151
|
+
isOutOfRange: true,
|
|
152
|
+
validationMessage: errorMessage,
|
|
153
|
+
isDisabled: true
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Check max date
|
|
158
|
+
if (maxDateObj && dateMoment.startOf("day").valueOf() > (0, _momentTimezone["default"])(maxDateObj).startOf("day").valueOf()) {
|
|
159
|
+
var _validatorMessage = getValidatorErrorMessage(validators, "maxdate");
|
|
160
|
+
var _errorMessage = _validatorMessage || validationmessage || "Date is after maximum date";
|
|
161
|
+
return {
|
|
162
|
+
isValid: false,
|
|
163
|
+
isOutOfRange: true,
|
|
164
|
+
validationMessage: _errorMessage,
|
|
165
|
+
isDisabled: true
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Check excluded days
|
|
170
|
+
var day = dateMoment.day();
|
|
171
|
+
if (excludedDaysArray.includes(day)) {
|
|
172
|
+
var _validatorMessage2 = getValidatorErrorMessage(validators, "excludedays");
|
|
173
|
+
var _errorMessage2 = _validatorMessage2 || validationmessage || "Date is excluded";
|
|
174
|
+
return {
|
|
175
|
+
isValid: false,
|
|
176
|
+
isOutOfRange: true,
|
|
177
|
+
validationMessage: _errorMessage2,
|
|
178
|
+
isDisabled: true
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Check excluded dates
|
|
183
|
+
var formattedDate = dateMoment.startOf("day").valueOf();
|
|
184
|
+
if (excludedDatesArray.some(function (excludedDate) {
|
|
185
|
+
return (0, _momentTimezone["default"])(excludedDate).startOf("day").valueOf() === formattedDate;
|
|
186
|
+
})) {
|
|
187
|
+
var _validatorMessage3 = getValidatorErrorMessage(validators, "excludedates");
|
|
188
|
+
var _errorMessage3 = _validatorMessage3 || validationmessage || "Date is excluded";
|
|
189
|
+
return {
|
|
190
|
+
isValid: false,
|
|
191
|
+
isOutOfRange: true,
|
|
192
|
+
validationMessage: _errorMessage3,
|
|
193
|
+
isDisabled: true
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
isValid: true,
|
|
198
|
+
isOutOfRange: false,
|
|
199
|
+
isDisabled: false
|
|
200
|
+
};
|
|
201
|
+
}
|