dinocollab-core 1.0.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/README.md +54 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js +431 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/assets/vector-404265a04f4f9c8be1f.webp +0 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js +46 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/src/api-context/alert-global.js +151 -0
- package/dist/src/api-context/alert-global.js.map +1 -0
- package/dist/src/api-context/drawer-global.js +105 -0
- package/dist/src/api-context/drawer-global.js.map +1 -0
- package/dist/src/api-context/global-modal.js +87 -0
- package/dist/src/api-context/global-modal.js.map +1 -0
- package/dist/src/api-context/popover-global.js +102 -0
- package/dist/src/api-context/popover-global.js.map +1 -0
- package/dist/src/api-context/popover.js +86 -0
- package/dist/src/api-context/popover.js.map +1 -0
- package/dist/src/api-context/ui.units.js +21 -0
- package/dist/src/api-context/ui.units.js.map +1 -0
- package/dist/src/components/copy-to-clipboard.js +105 -0
- package/dist/src/components/copy-to-clipboard.js.map +1 -0
- package/dist/src/components/custom.breadcrumbs.js +61 -0
- package/dist/src/components/custom.breadcrumbs.js.map +1 -0
- package/dist/src/components/help-tooltip.js +91 -0
- package/dist/src/components/help-tooltip.js.map +1 -0
- package/dist/src/components/image-with-fallback.js +48 -0
- package/dist/src/components/image-with-fallback.js.map +1 -0
- package/dist/src/components/text-editor.js +117 -0
- package/dist/src/components/text-editor.js.map +1 -0
- package/dist/src/form/create.autocomplete.chips.js +218 -0
- package/dist/src/form/create.autocomplete.chips.js.map +1 -0
- package/dist/src/form/create.date-expired.js +201 -0
- package/dist/src/form/create.date-expired.js.map +1 -0
- package/dist/src/form/create.date-picker.js +125 -0
- package/dist/src/form/create.date-picker.js.map +1 -0
- package/dist/src/form/create.form-base.js +135 -0
- package/dist/src/form/create.form-base.js.map +1 -0
- package/dist/src/form/create.form-comfirm.js +119 -0
- package/dist/src/form/create.form-comfirm.js.map +1 -0
- package/dist/src/form/create.form-grid-layout.js +177 -0
- package/dist/src/form/create.form-grid-layout.js.map +1 -0
- package/dist/src/form/create.form-grid-layout.units.js +39 -0
- package/dist/src/form/create.form-grid-layout.units.js.map +1 -0
- package/dist/src/form/create.input-base.js +260 -0
- package/dist/src/form/create.input-base.js.map +1 -0
- package/dist/src/form/create.input.file.js +74 -0
- package/dist/src/form/create.input.file.js.map +1 -0
- package/dist/src/form/create.select-simple.js +104 -0
- package/dist/src/form/create.select-simple.js.map +1 -0
- package/dist/src/form/create.select-with-api.js +271 -0
- package/dist/src/form/create.select-with-api.js.map +1 -0
- package/dist/src/form/create.text-editor.js +156 -0
- package/dist/src/form/create.text-editor.js.map +1 -0
- package/dist/src/form/dino-form.js +42 -0
- package/dist/src/form/dino-form.js.map +1 -0
- package/dist/src/form/helper.js +157 -0
- package/dist/src/form/helper.js.map +1 -0
- package/dist/src/form/modal-wrapper.js +75 -0
- package/dist/src/form/modal-wrapper.js.map +1 -0
- package/dist/src/form/validator.js +186 -0
- package/dist/src/form/validator.js.map +1 -0
- package/dist/src/hooks/index.js +48 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/index.js +26 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/redux/create.hoc-lazy.js +67 -0
- package/dist/src/redux/create.hoc-lazy.js.map +1 -0
- package/dist/src/redux/dino.js +11 -0
- package/dist/src/redux/dino.js.map +1 -0
- package/dist/src/redux/types.js +9 -0
- package/dist/src/redux/types.js.map +1 -0
- package/dist/src/redux/ui.error-page.js +80 -0
- package/dist/src/redux/ui.error-page.js.map +1 -0
- package/dist/src/redux/vector-404.webp.js +4 -0
- package/dist/src/redux/vector-404.webp.js.map +1 -0
- package/dist/src/table/context.js +12 -0
- package/dist/src/table/context.js.map +1 -0
- package/dist/src/table/create.action-row.js +135 -0
- package/dist/src/table/create.action-row.js.map +1 -0
- package/dist/src/table/create.status-cell.js +49 -0
- package/dist/src/table/create.status-cell.js.map +1 -0
- package/dist/src/table/create.table.js +233 -0
- package/dist/src/table/create.table.js.map +1 -0
- package/dist/src/table/custom.filter-operators.js +89 -0
- package/dist/src/table/custom.filter-operators.js.map +1 -0
- package/dist/src/table/dino.js +129 -0
- package/dist/src/table/dino.js.map +1 -0
- package/dist/src/table/helpers.js +116 -0
- package/dist/src/table/helpers.js.map +1 -0
- package/dist/src/table/model-filter.js +23 -0
- package/dist/src/table/model-filter.js.map +1 -0
- package/dist/src/table/toolbar-pannel.js +134 -0
- package/dist/src/table/toolbar-pannel.js.map +1 -0
- package/dist/src/table/ui.buttons.js +60 -0
- package/dist/src/table/ui.buttons.js.map +1 -0
- package/dist/src/table/ui.units.js +201 -0
- package/dist/src/table/ui.units.js.map +1 -0
- package/dist/src/utils/dayjs-config.js +12 -0
- package/dist/src/utils/dayjs-config.js.map +1 -0
- package/dist/src/utils/helpers.js +197 -0
- package/dist/src/utils/helpers.js.map +1 -0
- package/dist/src/utils/json-object.js +38 -0
- package/dist/src/utils/json-object.js.map +1 -0
- package/dist/src/utils/query-param.js +172 -0
- package/dist/src/utils/query-param.js.map +1 -0
- package/package.json +52 -0
- package/rollup.config.js +39 -0
- package/src/@types/global.d.ts +5 -0
- package/src/api-context/alert-global.tsx +174 -0
- package/src/api-context/drawer-global.tsx +116 -0
- package/src/api-context/global-modal.tsx +109 -0
- package/src/api-context/index.ts +13 -0
- package/src/api-context/popover-global.tsx +107 -0
- package/src/api-context/popover.tsx +89 -0
- package/src/api-context/ui.units.tsx +10 -0
- package/src/components/copy-to-clipboard.tsx +86 -0
- package/src/components/custom.breadcrumbs.tsx +67 -0
- package/src/components/help-tooltip.tsx +75 -0
- package/src/components/image-with-fallback.tsx +51 -0
- package/src/components/index.tsx +1 -0
- package/src/components/input-debounce-timer.tsx +138 -0
- package/src/components/loading-buttons.tsx +35 -0
- package/src/components/text-editor.preview.tsx +30 -0
- package/src/components/text-editor.tsx +125 -0
- package/src/form/README.md +55 -0
- package/src/form/create.autocomplete.chips.tsx +199 -0
- package/src/form/create.date-expired.tsx +195 -0
- package/src/form/create.date-picker.tsx +122 -0
- package/src/form/create.form-base.tsx +102 -0
- package/src/form/create.form-comfirm.tsx +83 -0
- package/src/form/create.form-grid-layout.tsx +170 -0
- package/src/form/create.form-grid-layout.units.tsx +37 -0
- package/src/form/create.input-base.tsx +222 -0
- package/src/form/create.input.file.tsx +76 -0
- package/src/form/create.select-simple.tsx +101 -0
- package/src/form/create.select-with-api.tsx +213 -0
- package/src/form/create.text-editor.tsx +161 -0
- package/src/form/dino-form.tsx +40 -0
- package/src/form/helper.ts +132 -0
- package/src/form/index.ts +12 -0
- package/src/form/modal-wrapper.tsx +75 -0
- package/src/form/types.ts +16 -0
- package/src/form/validator.ts +202 -0
- package/src/hooks/index.ts +44 -0
- package/src/index.ts +7 -0
- package/src/lab/create.autocomplete.simple.tsx +57 -0
- package/src/lab/create.dino-store.ts +59 -0
- package/src/lab/create.multi-select-dropdown.tsx +189 -0
- package/src/lab/create.select-mul-with-api/index.tsx +271 -0
- package/src/lab/create.select-mul-with-api/table-custom.tsx +194 -0
- package/src/lab/create.select-mul-with-api/types.ts +26 -0
- package/src/lab/create.select-mul-with-api/ui.units.tsx +163 -0
- package/src/lab/filter-bar/base.tsx +162 -0
- package/src/lab/filter-bar/create.filter-bar.tsx +190 -0
- package/src/lab/filter-bar/create.filter-menu.tsx +156 -0
- package/src/lab/filter-bar/create.filter-panel.tsx +95 -0
- package/src/lab/filter-bar/create.filtered.tsx +41 -0
- package/src/lab/filter-bar/create.sort-menu.tsx +43 -0
- package/src/lab/filter-bar/demo.tsx +50 -0
- package/src/lab/filter-bar/index.ts +6 -0
- package/src/lab/filter-bar/types.ts +105 -0
- package/src/lab/filter-bar/ui.units.tsx +70 -0
- package/src/lab/grafana-dashboard/configs.ts +43 -0
- package/src/lab/grafana-dashboard/date-time-range/absolute-time-rage.tsx +137 -0
- package/src/lab/grafana-dashboard/date-time-range/helpers.ts +126 -0
- package/src/lab/grafana-dashboard/date-time-range/index.tsx +62 -0
- package/src/lab/grafana-dashboard/date-time-range/menu-wrap.tsx +101 -0
- package/src/lab/grafana-dashboard/date-time-range/quick-ranges.tsx +161 -0
- package/src/lab/grafana-dashboard/date-time-range/types.ts +9 -0
- package/src/lab/grafana-dashboard/date-time-range/units.tsx +18 -0
- package/src/lab/grafana-dashboard/helper.ts +25 -0
- package/src/lab/grafana-dashboard/hooks.tsx +79 -0
- package/src/lab/grafana-dashboard/icons.tsx +67 -0
- package/src/lab/grafana-dashboard/index.tsx +120 -0
- package/src/lab/grafana-dashboard/top-bar.tsx +62 -0
- package/src/lab/grafana-dashboard/top-bar.types.ts +5 -0
- package/src/lab/grafana-dashboard/types.ts +8 -0
- package/src/lab/media-player.core1.tsx +273 -0
- package/src/lab/media-player.muted.tsx +62 -0
- package/src/lab/media-player.units.ts +80 -0
- package/src/lab/table-grid/create.table-grid.tsx +183 -0
- package/src/lab/table-grid/demo.tsx +53 -0
- package/src/lab/table-grid/dino.tsx +8 -0
- package/src/lab/table-grid/helpers.tsx +11 -0
- package/src/lab/table-grid/index.ts +3 -0
- package/src/lab/table-grid/item-actions.tsx +138 -0
- package/src/lab/table-grid/toolbar-pannel.tsx +98 -0
- package/src/lab/table-grid/types.ts +68 -0
- package/src/redux/create.hoc-lazy.tsx +80 -0
- package/src/redux/dino.ts +9 -0
- package/src/redux/index.ts +6 -0
- package/src/redux/types.ts +27 -0
- package/src/redux/ui.error-page.tsx +62 -0
- package/src/redux/ui.units.tsx +41 -0
- package/src/redux/vector-404.webp +0 -0
- package/src/table/context.tsx +16 -0
- package/src/table/create.action-row.tsx +91 -0
- package/src/table/create.status-cell.tsx +51 -0
- package/src/table/create.table.tsx +239 -0
- package/src/table/custom.filter-operators.ts +94 -0
- package/src/table/dino.tsx +120 -0
- package/src/table/helpers.ts +94 -0
- package/src/table/index.ts +13 -0
- package/src/table/model-filter.ts +43 -0
- package/src/table/toolbar-pannel.tsx +106 -0
- package/src/table/types.ts +50 -0
- package/src/table/ui.buttons.tsx +54 -0
- package/src/table/ui.units.tsx +189 -0
- package/src/utils/dayjs-config.ts +13 -0
- package/src/utils/helpers.ts +171 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/json-object.ts +29 -0
- package/src/utils/mfe-events.tsx +34 -0
- package/src/utils/query-param.ts +129 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { createClass as _createClass, classCallCheck as _classCallCheck, toConsumableArray as _toConsumableArray, inherits as _inherits, extends as _extends, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
import { styled, Autocomplete, TextField, Chip, Typography, Tooltip, IconButton } from '@mui/material';
|
|
4
|
+
import RemoveIcon from '@mui/icons-material/Remove';
|
|
5
|
+
import { getErrorMessage } from './helper.js';
|
|
6
|
+
|
|
7
|
+
function CreateAutocompleteChip(options) {
|
|
8
|
+
var separator = (options === null || options === void 0 ? void 0 : options.separator) || '|';
|
|
9
|
+
var limitTags = (options === null || options === void 0 ? void 0 : options.limitTags) || 2;
|
|
10
|
+
var storeItems = (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) ? AutocompleteChipStore.initial(options.saveLocalStorageByKey) : undefined;
|
|
11
|
+
return /*#__PURE__*/function (_Component) {
|
|
12
|
+
function AutocompleteChip(props) {
|
|
13
|
+
var _this;
|
|
14
|
+
_classCallCheck(this, AutocompleteChip);
|
|
15
|
+
_this = _callSuper(this, AutocompleteChip, [props]);
|
|
16
|
+
_this.refInput = null;
|
|
17
|
+
_this.handleRemoveItem = function (e, value) {
|
|
18
|
+
var _a;
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
e.stopPropagation();
|
|
21
|
+
console.log(value);
|
|
22
|
+
var list = (_a = storeItems === null || storeItems === void 0 ? void 0 : storeItems["delete"](value)) !== null && _a !== void 0 ? _a : [];
|
|
23
|
+
_this.setState({
|
|
24
|
+
options: list
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
_this.handleAddOption = function (_, newValue) {
|
|
28
|
+
var _a;
|
|
29
|
+
if (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) {
|
|
30
|
+
var _options = (_a = storeItems === null || storeItems === void 0 ? void 0 : storeItems.setItems(_this.state.options, newValue)) !== null && _a !== void 0 ? _a : _this.state.options;
|
|
31
|
+
_this.setState({
|
|
32
|
+
value: newValue,
|
|
33
|
+
options: _options
|
|
34
|
+
});
|
|
35
|
+
} else {
|
|
36
|
+
_this.setState({
|
|
37
|
+
value: newValue
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (_this.refInput) {
|
|
41
|
+
_this.refInput.value = newValue.join(separator);
|
|
42
|
+
}
|
|
43
|
+
_this.props.name && _this.props.onBlur && _this.props.onBlur(_this.props.name);
|
|
44
|
+
};
|
|
45
|
+
_this.isBtnRemoveOption = function (value) {
|
|
46
|
+
var _a, _b, _c;
|
|
47
|
+
var isSelectedOption = _this.state.value.findIndex(function (x) {
|
|
48
|
+
return x === value;
|
|
49
|
+
}) < 0;
|
|
50
|
+
var selectOptions = (_c = (_a = options === null || options === void 0 ? void 0 : options.optionItems) !== null && _a !== void 0 ? _a : (_b = _this.props.slots) === null || _b === void 0 ? void 0 : _b.optionItems) !== null && _c !== void 0 ? _c : [];
|
|
51
|
+
var isDefault = selectOptions.findIndex(function (x) {
|
|
52
|
+
return x === value;
|
|
53
|
+
}) < 0;
|
|
54
|
+
return isDefault && isSelectedOption;
|
|
55
|
+
};
|
|
56
|
+
_this.getSelectOptions = function () {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
var items = (_a = options === null || options === void 0 ? void 0 : options.optionItems) !== null && _a !== void 0 ? _a : [];
|
|
59
|
+
if (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) {
|
|
60
|
+
items = (_b = storeItems === null || storeItems === void 0 ? void 0 : storeItems.getItemsAndMerge(items)) !== null && _b !== void 0 ? _b : [];
|
|
61
|
+
}
|
|
62
|
+
return items;
|
|
63
|
+
};
|
|
64
|
+
_this.getTextFieldProps = function () {
|
|
65
|
+
var _this$props = _this.props,
|
|
66
|
+
name = _this$props.name,
|
|
67
|
+
label = _this$props.label,
|
|
68
|
+
placeholder = _this$props.placeholder,
|
|
69
|
+
_onBlur = _this$props.onBlur,
|
|
70
|
+
messageErrors = _this$props.messageErrors;
|
|
71
|
+
var eMessage = getErrorMessage(messageErrors, name);
|
|
72
|
+
return {
|
|
73
|
+
label: label,
|
|
74
|
+
placeholder: placeholder || 'Add new',
|
|
75
|
+
onBlur: function onBlur() {
|
|
76
|
+
if (!name) return;
|
|
77
|
+
_onBlur && _onBlur(name);
|
|
78
|
+
},
|
|
79
|
+
error: eMessage.error,
|
|
80
|
+
helperText: eMessage.message
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
_this.getDefaultValue = function () {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
var _this$props2 = _this.props,
|
|
86
|
+
name = _this$props2.name,
|
|
87
|
+
data = _this$props2.data;
|
|
88
|
+
var value = name ? (_a = data === null || data === void 0 ? void 0 : data[name]) === null || _a === void 0 ? void 0 : _a.toString() : '';
|
|
89
|
+
return (_b = value === null || value === void 0 ? void 0 : value.split(separator).filter(function (x) {
|
|
90
|
+
return !!x;
|
|
91
|
+
})) !== null && _b !== void 0 ? _b : [];
|
|
92
|
+
};
|
|
93
|
+
_this.state = {
|
|
94
|
+
value: _this.getDefaultValue(),
|
|
95
|
+
options: _this.getSelectOptions()
|
|
96
|
+
};
|
|
97
|
+
return _this;
|
|
98
|
+
}
|
|
99
|
+
_inherits(AutocompleteChip, _Component);
|
|
100
|
+
return _createClass(AutocompleteChip, [{
|
|
101
|
+
key: "render",
|
|
102
|
+
value: function render() {
|
|
103
|
+
var _this2 = this;
|
|
104
|
+
var name = this.props.name;
|
|
105
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Autocomplete, {
|
|
106
|
+
multiple: true,
|
|
107
|
+
freeSolo: true,
|
|
108
|
+
limitTags: limitTags,
|
|
109
|
+
value: this.state.value,
|
|
110
|
+
onChange: this.handleAddOption,
|
|
111
|
+
options: this.state.options,
|
|
112
|
+
renderOption: function renderOption(props, option) {
|
|
113
|
+
return /*#__PURE__*/React.createElement(ItemOption, _extends({}, props, {
|
|
114
|
+
key: option
|
|
115
|
+
}), /*#__PURE__*/React.createElement(Typography, {
|
|
116
|
+
variant: "subtitle1",
|
|
117
|
+
sx: {
|
|
118
|
+
flex: 1
|
|
119
|
+
}
|
|
120
|
+
}, option), _this2.isBtnRemoveOption(option) && /*#__PURE__*/React.createElement(Tooltip, {
|
|
121
|
+
title: "Remove option",
|
|
122
|
+
arrow: true,
|
|
123
|
+
placement: "left"
|
|
124
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
125
|
+
size: "small",
|
|
126
|
+
onClick: function onClick(e) {
|
|
127
|
+
return _this2.handleRemoveItem(e, option);
|
|
128
|
+
}
|
|
129
|
+
}, /*#__PURE__*/React.createElement(RemoveIcon, {
|
|
130
|
+
fontSize: "small"
|
|
131
|
+
}))));
|
|
132
|
+
},
|
|
133
|
+
renderTags: function renderTags(tagValue, getTagProps) {
|
|
134
|
+
return tagValue.map(function (option, index) {
|
|
135
|
+
return /*#__PURE__*/React.createElement(Chip, _extends({
|
|
136
|
+
label: option
|
|
137
|
+
}, getTagProps({
|
|
138
|
+
index: index
|
|
139
|
+
}), {
|
|
140
|
+
key: option.toString()
|
|
141
|
+
}));
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
renderInput: function renderInput(params) {
|
|
145
|
+
return /*#__PURE__*/React.createElement(TextField, _extends({}, params, {
|
|
146
|
+
variant: "outlined"
|
|
147
|
+
}, _this2.getTextFieldProps()));
|
|
148
|
+
}
|
|
149
|
+
}), /*#__PURE__*/React.createElement("input", {
|
|
150
|
+
ref: function ref(_ref) {
|
|
151
|
+
_this2.refInput = _ref;
|
|
152
|
+
},
|
|
153
|
+
hidden: true,
|
|
154
|
+
type: "text",
|
|
155
|
+
name: name === null || name === void 0 ? void 0 : name.toString(),
|
|
156
|
+
defaultValue: this.state.value.join(separator)
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
}]);
|
|
160
|
+
}(Component);
|
|
161
|
+
}
|
|
162
|
+
var ItemOption = styled('li')({
|
|
163
|
+
display: 'flex',
|
|
164
|
+
alignItems: 'center'
|
|
165
|
+
});
|
|
166
|
+
var AutocompleteChipStore = /*#__PURE__*/_createClass(function AutocompleteChipStore(key, defaultValue) {
|
|
167
|
+
var _this3 = this;
|
|
168
|
+
_classCallCheck(this, AutocompleteChipStore);
|
|
169
|
+
this.storeKeyRoot = 'autocomplete_chip_store';
|
|
170
|
+
this.getRoot = function () {
|
|
171
|
+
try {
|
|
172
|
+
var res = window.localStorage.getItem(_this3.storeKeyRoot);
|
|
173
|
+
return JSON.parse(res !== null && res !== void 0 ? res : '{}');
|
|
174
|
+
} catch (error) {
|
|
175
|
+
return {};
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
this.getChild = function () {
|
|
179
|
+
return _this3.getRoot()[_this3.storeKey];
|
|
180
|
+
};
|
|
181
|
+
this.setRoot = function (value) {
|
|
182
|
+
window.localStorage.setItem(_this3.storeKeyRoot, JSON.stringify(value));
|
|
183
|
+
};
|
|
184
|
+
this.setChild = function (value) {
|
|
185
|
+
var obj = _this3.getRoot();
|
|
186
|
+
obj[_this3.storeKey] = value;
|
|
187
|
+
_this3.setRoot(obj);
|
|
188
|
+
};
|
|
189
|
+
this.getItemsAndMerge = function (value) {
|
|
190
|
+
try {
|
|
191
|
+
return Array.from(new Set([].concat(_toConsumableArray(_this3.getChild()), _toConsumableArray(value)))).sort();
|
|
192
|
+
} catch (error) {
|
|
193
|
+
return value;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
this.setItems = function (options, value) {
|
|
197
|
+
var list = Array.from(new Set([].concat(_toConsumableArray(options), _toConsumableArray(value)))).sort();
|
|
198
|
+
_this3.setChild(list);
|
|
199
|
+
return list;
|
|
200
|
+
};
|
|
201
|
+
this["delete"] = function (value) {
|
|
202
|
+
var list = _this3.getChild().filter(function (x) {
|
|
203
|
+
return x !== value;
|
|
204
|
+
});
|
|
205
|
+
_this3.setChild(list);
|
|
206
|
+
return list;
|
|
207
|
+
};
|
|
208
|
+
this.storeKey = key;
|
|
209
|
+
if (defaultValue) {
|
|
210
|
+
this.setChild(defaultValue);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
AutocompleteChipStore.initial = function (key, defaultValue) {
|
|
214
|
+
return new AutocompleteChipStore(key, defaultValue);
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
export { CreateAutocompleteChip as default };
|
|
218
|
+
//# sourceMappingURL=create.autocomplete.chips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.autocomplete.chips.js","sources":["../../../src/form/create.autocomplete.chips.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Autocomplete, Chip, IconButton, styled, TextField, TextFieldProps, Tooltip, Typography } from '@mui/material'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\ninterface IOptions {\r\n optionItems?: string[]\r\n limitTags?: number\r\n separator?: string\r\n saveLocalStorageByKey?: string\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T, IOptions> {}\r\n\r\ninterface IState {\r\n value: string[]\r\n options: string[]\r\n}\r\n\r\nexport default function CreateAutocompleteChip<T>(options?: IOptions) {\r\n const separator = options?.separator || '|'\r\n const limitTags = options?.limitTags || 2\r\n const storeItems = options?.saveLocalStorageByKey ? AutocompleteChipStore.initial(options.saveLocalStorageByKey) : undefined\r\n\r\n return class AutocompleteChip extends Component<IProps<T>, IState> {\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = {\r\n value: this.getDefaultValue(),\r\n options: this.getSelectOptions()\r\n }\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n render() {\r\n const { name } = this.props\r\n return (\r\n <>\r\n <Autocomplete\r\n multiple\r\n freeSolo\r\n limitTags={limitTags}\r\n value={this.state.value}\r\n onChange={this.handleAddOption}\r\n options={this.state.options}\r\n renderOption={(props, option) => (\r\n <ItemOption {...props} key={option}>\r\n <Typography variant='subtitle1' sx={{ flex: 1 }}>\r\n {option}\r\n </Typography>\r\n {this.isBtnRemoveOption(option) && (\r\n <Tooltip title='Remove option' arrow placement='left'>\r\n <IconButton size='small' onClick={(e) => this.handleRemoveItem(e, option)}>\r\n <RemoveIcon fontSize='small' />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </ItemOption>\r\n )}\r\n renderTags={(tagValue, getTagProps) => {\r\n return tagValue.map((option, index) => <Chip label={option} {...getTagProps({ index })} key={option.toString()} />)\r\n }}\r\n renderInput={(params) => <TextField {...params} variant='outlined' {...this.getTextFieldProps()} />}\r\n />\r\n <input\r\n ref={(ref) => {\r\n this.refInput = ref\r\n }}\r\n hidden\r\n type='text'\r\n name={name?.toString()}\r\n defaultValue={this.state.value.join(separator)}\r\n />\r\n </>\r\n )\r\n }\r\n\r\n handleRemoveItem = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, value: string) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n console.log(value)\r\n const list = storeItems?.delete(value) ?? []\r\n this.setState({ options: list })\r\n }\r\n\r\n handleAddOption = (_: React.SyntheticEvent, newValue: string[]) => {\r\n if (options?.saveLocalStorageByKey) {\r\n const options = storeItems?.setItems(this.state.options, newValue) ?? this.state.options\r\n this.setState({ value: newValue, options })\r\n } else {\r\n this.setState({ value: newValue })\r\n }\r\n if (this.refInput) {\r\n this.refInput.value = newValue.join(separator)\r\n }\r\n this.props.name && this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n\r\n isBtnRemoveOption = (value: string) => {\r\n const isSelectedOption = this.state.value.findIndex((x) => x === value) < 0\r\n const selectOptions = options?.optionItems ?? this.props.slots?.optionItems ?? []\r\n const isDefault = selectOptions.findIndex((x) => x === value) < 0\r\n return isDefault && isSelectedOption\r\n }\r\n\r\n getSelectOptions = () => {\r\n let items = options?.optionItems ?? []\r\n if (options?.saveLocalStorageByKey) {\r\n items = storeItems?.getItemsAndMerge(items) ?? []\r\n }\r\n return items\r\n }\r\n\r\n getTextFieldProps = (): TextFieldProps => {\r\n const { name, label, placeholder, onBlur, messageErrors } = this.props\r\n const eMessage = getErrorMessage(messageErrors, name)\r\n return {\r\n label,\r\n placeholder: placeholder || 'Add new',\r\n onBlur: () => {\r\n if (!name) return\r\n onBlur && onBlur(name)\r\n },\r\n error: eMessage.error,\r\n helperText: eMessage.message\r\n }\r\n }\r\n\r\n getDefaultValue = (): string[] => {\r\n const { name, data } = this.props\r\n const value = name ? data?.[name]?.toString() : ''\r\n return value?.split(separator).filter((x) => !!x) ?? []\r\n }\r\n }\r\n}\r\n\r\nconst ItemOption = styled('li')({\r\n display: 'flex',\r\n alignItems: 'center'\r\n})\r\n\r\ntype TChipStoreRoot = { [key: string]: string[] }\r\n\r\nclass AutocompleteChipStore {\r\n private storeKeyRoot = 'autocomplete_chip_store'\r\n private storeKey: string\r\n constructor(key: string, defaultValue?: string[]) {\r\n this.storeKey = key\r\n if (defaultValue) {\r\n this.setChild(defaultValue)\r\n }\r\n }\r\n\r\n static initial = (key: string, defaultValue?: string[]) => new AutocompleteChipStore(key, defaultValue)\r\n\r\n private getRoot = (): TChipStoreRoot => {\r\n try {\r\n const res = window.localStorage.getItem(this.storeKeyRoot)\r\n return JSON.parse(res ?? '{}')\r\n } catch (error) {\r\n return {}\r\n }\r\n }\r\n\r\n private getChild = (): string[] => {\r\n return this.getRoot()[this.storeKey]\r\n }\r\n\r\n private setRoot = (value: TChipStoreRoot) => {\r\n window.localStorage.setItem(this.storeKeyRoot, JSON.stringify(value))\r\n }\r\n\r\n private setChild = (value: string[]) => {\r\n const obj = this.getRoot()\r\n obj[this.storeKey] = value\r\n this.setRoot(obj)\r\n }\r\n\r\n getItemsAndMerge = (value: string[]): string[] => {\r\n try {\r\n return Array.from(new Set([...this.getChild(), ...value])).sort()\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n\r\n setItems = (options: string[], value: string[]): string[] => {\r\n const list = Array.from(new Set([...options, ...value])).sort()\r\n this.setChild(list)\r\n return list\r\n }\r\n\r\n delete = (value: string) => {\r\n const list = this.getChild().filter((x) => x !== value)\r\n this.setChild(list)\r\n return list\r\n }\r\n}\r\n"],"names":["CreateAutocompleteChip","options","separator","limitTags","storeItems","saveLocalStorageByKey","AutocompleteChipStore","initial","undefined","_Component","AutocompleteChip","props","_this","_classCallCheck","_callSuper","refInput","handleRemoveItem","e","value","preventDefault","stopPropagation","console","log","list","_a","setState","handleAddOption","_","newValue","setItems","state","join","name","onBlur","isBtnRemoveOption","isSelectedOption","findIndex","x","selectOptions","_c","optionItems","_b","slots","isDefault","getSelectOptions","items","getItemsAndMerge","getTextFieldProps","_this$props","label","placeholder","messageErrors","eMessage","getErrorMessage","error","helperText","message","getDefaultValue","_this$props2","data","toString","split","filter","_inherits","_createClass","key","render","_this2","React","createElement","Fragment","Autocomplete","multiple","freeSolo","onChange","renderOption","option","ItemOption","_extends","Typography","variant","sx","flex","Tooltip","title","arrow","placement","IconButton","size","onClick","RemoveIcon","fontSize","renderTags","tagValue","getTagProps","map","index","Chip","renderInput","params","TextField","ref","hidden","type","defaultValue","Component","styled","display","alignItems","_this3","storeKeyRoot","getRoot","res","window","localStorage","getItem","JSON","parse","getChild","storeKey","setRoot","setItem","stringify","setChild","obj","Array","from","Set","concat","_toConsumableArray","sort"],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty, inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
import { LocalizationProvider } from '@mui/x-date-pickers';
|
|
4
|
+
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
5
|
+
import { styled, Box, TextField, Typography, Switch } from '@mui/material';
|
|
6
|
+
import { mergeObjects as _mergeObjects, tryParseIntRequired } from '../utils/helpers.js';
|
|
7
|
+
import '../utils/query-param.js';
|
|
8
|
+
import '../utils/dayjs-config.js';
|
|
9
|
+
import { getErrorMessage } from './helper.js';
|
|
10
|
+
import dayjs from 'dayjs';
|
|
11
|
+
|
|
12
|
+
var defaultFormatString = 'MM-DD-YYYY';
|
|
13
|
+
var dateExpiredClasses = {
|
|
14
|
+
root: 'DateExpired-root',
|
|
15
|
+
control: 'DateExpired-control',
|
|
16
|
+
label: 'DateExpired-label',
|
|
17
|
+
labelSwitch: 'DateExpired-labelSwitch',
|
|
18
|
+
input: 'DateExpired-input',
|
|
19
|
+
"switch": 'DateExpired-switch'
|
|
20
|
+
};
|
|
21
|
+
function CreateDateExpired(params) {
|
|
22
|
+
var DateExpired = /*#__PURE__*/function (_Component) {
|
|
23
|
+
function DateExpired(props) {
|
|
24
|
+
var _this;
|
|
25
|
+
_classCallCheck(this, DateExpired);
|
|
26
|
+
_this = _callSuper(this, DateExpired, [props]);
|
|
27
|
+
_this.defaultNumberOfDays = 30;
|
|
28
|
+
_this.getNumberOfDays = function () {
|
|
29
|
+
if (_this.slots.type === 'number') {
|
|
30
|
+
return tryParseIntRequired(_this.defaulValue, _this.defaultNumberOfDays);
|
|
31
|
+
} else {
|
|
32
|
+
return _this.getDaysUntilDate(_this.defaulValue, _this.defaultNumberOfDays);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
_this.mapTextFieldProps = function () {
|
|
37
|
+
var _a;
|
|
38
|
+
var _this$props = _this.props,
|
|
39
|
+
messageErrors = _this$props.messageErrors,
|
|
40
|
+
name = _this$props.name,
|
|
41
|
+
onBlur = _this$props.onBlur;
|
|
42
|
+
var disabled = _this.props.disabled || !_this.state.switchChecked;
|
|
43
|
+
var obj = {
|
|
44
|
+
fullWidth: true,
|
|
45
|
+
className: dateExpiredClasses.input,
|
|
46
|
+
label: /*#__PURE__*/React.createElement("span", {
|
|
47
|
+
className: dateExpiredClasses.label
|
|
48
|
+
}, "Expiry date", _this.state.switchChecked && /*#__PURE__*/React.createElement("b", null, _this.getOffsetDate(_this.state.numberOfDays))),
|
|
49
|
+
variant: 'outlined',
|
|
50
|
+
type: 'number',
|
|
51
|
+
disabled: disabled,
|
|
52
|
+
value: _this.state.switchChecked ? _this.state.numberOfDays : 0,
|
|
53
|
+
onChange: _this.handleChange
|
|
54
|
+
};
|
|
55
|
+
if (!!name) {
|
|
56
|
+
obj.onBlur = function () {
|
|
57
|
+
return onBlur && onBlur(name);
|
|
58
|
+
};
|
|
59
|
+
var temp = getErrorMessage(messageErrors, name);
|
|
60
|
+
if (temp.error) {
|
|
61
|
+
obj.error = Boolean(temp.error);
|
|
62
|
+
obj.helperText = (_a = temp.message) !== null && _a !== void 0 ? _a : '';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return _mergeObjects({}, obj, _this.slots.textFieldProps);
|
|
66
|
+
};
|
|
67
|
+
_this.handleChange = function (e) {
|
|
68
|
+
var numberOfDays = e.target.value != '' ? parseInt(e.target.value) : 0;
|
|
69
|
+
_this.setState({
|
|
70
|
+
numberOfDays: numberOfDays
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
_this.getOffsetDate = function (num) {
|
|
74
|
+
var formatString = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFormatString;
|
|
75
|
+
return dayjs().add(num, 'day').format(formatString);
|
|
76
|
+
};
|
|
77
|
+
_this.getDaysUntilDate = function (value) {
|
|
78
|
+
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
79
|
+
try {
|
|
80
|
+
if (!value) return defaultValue;
|
|
81
|
+
var target = dayjs(value);
|
|
82
|
+
var today = dayjs();
|
|
83
|
+
var diff = target.diff(today, 'day', true);
|
|
84
|
+
return Math.round(diff);
|
|
85
|
+
} catch (_a) {
|
|
86
|
+
return defaultValue;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
_this.state = {
|
|
90
|
+
numberOfDays: _this.getNumberOfDays(),
|
|
91
|
+
switchChecked: _this.slots.switchChecked
|
|
92
|
+
};
|
|
93
|
+
_this.id = new Date().getTime().toString();
|
|
94
|
+
return _this;
|
|
95
|
+
}
|
|
96
|
+
_inherits(DateExpired, _Component);
|
|
97
|
+
return _createClass(DateExpired, [{
|
|
98
|
+
key: "slots",
|
|
99
|
+
get: function get() {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
var _ref = (_a = this.props.slots) !== null && _a !== void 0 ? _a : {},
|
|
102
|
+
switchChecked = _ref.switchChecked,
|
|
103
|
+
switchCheckedGetter = _ref.switchCheckedGetter;
|
|
104
|
+
var obj = _mergeObjects(params, this.props.slots);
|
|
105
|
+
var check = (_b = this.defaulValue ? !!this.defaulValue : switchChecked) !== null && _b !== void 0 ? _b : true;
|
|
106
|
+
if (switchCheckedGetter) check = switchCheckedGetter(this.defaulValue, this.props.data);
|
|
107
|
+
return Object.assign(Object.assign({}, obj), {
|
|
108
|
+
switchChecked: check
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: "defaulValue",
|
|
113
|
+
get: function get() {
|
|
114
|
+
var _a, _b;
|
|
115
|
+
var _this$props2 = this.props,
|
|
116
|
+
data = _this$props2.data,
|
|
117
|
+
name = _this$props2.name;
|
|
118
|
+
return (_a = this.props.defaultValue) !== null && _a !== void 0 ? _a : !!data && !!name ? (_b = data[name]) === null || _b === void 0 ? void 0 : _b.toString() : undefined;
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
key: "defaultValueInput",
|
|
122
|
+
get: function get() {
|
|
123
|
+
if (this.slots.type === 'number') {
|
|
124
|
+
return this.state.numberOfDays;
|
|
125
|
+
} else {
|
|
126
|
+
return this.getOffsetDate(this.state.numberOfDays, 'YYYY-MM-DDTHH:mm:ss.sssZ');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//#region Render
|
|
130
|
+
}, {
|
|
131
|
+
key: "render",
|
|
132
|
+
value: function render() {
|
|
133
|
+
var _this2 = this;
|
|
134
|
+
var _a;
|
|
135
|
+
return /*#__PURE__*/React.createElement(LocalizationProvider, {
|
|
136
|
+
dateAdapter: AdapterDayjs
|
|
137
|
+
}, /*#__PURE__*/React.createElement(Wrap, {
|
|
138
|
+
className: dateExpiredClasses.root
|
|
139
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
140
|
+
key: this.defaultValueInput,
|
|
141
|
+
type: "text",
|
|
142
|
+
hidden: true,
|
|
143
|
+
name: (_a = this.props.name) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
144
|
+
defaultValue: this.defaultValueInput
|
|
145
|
+
}), /*#__PURE__*/React.createElement(TextField, this.mapTextFieldProps()), /*#__PURE__*/React.createElement("div", {
|
|
146
|
+
className: dateExpiredClasses.control
|
|
147
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
148
|
+
variant: "caption",
|
|
149
|
+
className: dateExpiredClasses.labelSwitch,
|
|
150
|
+
component: 'label',
|
|
151
|
+
htmlFor: this.id,
|
|
152
|
+
sx: {
|
|
153
|
+
color: this.state.switchChecked ? 'success.main' : '#767676'
|
|
154
|
+
}
|
|
155
|
+
}, this.state.switchChecked ? 'Use Expiration Date' : 'No Expiration'), /*#__PURE__*/React.createElement(Switch, {
|
|
156
|
+
id: this.id,
|
|
157
|
+
size: "small",
|
|
158
|
+
color: "success",
|
|
159
|
+
checked: this.state.switchChecked,
|
|
160
|
+
onChange: function onChange(_, checked) {
|
|
161
|
+
return _this2.setState({
|
|
162
|
+
switchChecked: checked
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}))));
|
|
166
|
+
}
|
|
167
|
+
}]);
|
|
168
|
+
}(Component);
|
|
169
|
+
return DateExpired;
|
|
170
|
+
}
|
|
171
|
+
var Wrap = styled(Box)(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
|
|
172
|
+
display: 'flex',
|
|
173
|
+
alignItems: 'center',
|
|
174
|
+
gap: '10px',
|
|
175
|
+
position: 'relative'
|
|
176
|
+
}, ".".concat(dateExpiredClasses["switch"]), {
|
|
177
|
+
margin: 0,
|
|
178
|
+
flex: '0 0 auto'
|
|
179
|
+
}), ".".concat(dateExpiredClasses.label), {
|
|
180
|
+
b: {
|
|
181
|
+
color: '#1976d2',
|
|
182
|
+
marginLeft: '8px'
|
|
183
|
+
}
|
|
184
|
+
}), ".".concat(dateExpiredClasses.labelSwitch), {
|
|
185
|
+
fontWeight: 600,
|
|
186
|
+
cursor: 'pointer'
|
|
187
|
+
}), ".".concat(dateExpiredClasses.control), {
|
|
188
|
+
position: 'absolute',
|
|
189
|
+
top: 0,
|
|
190
|
+
right: 0,
|
|
191
|
+
height: '100%',
|
|
192
|
+
display: 'flex',
|
|
193
|
+
alignItems: 'center'
|
|
194
|
+
}), ".".concat(dateExpiredClasses.input), {
|
|
195
|
+
'.MuiInputBase-input': {
|
|
196
|
+
paddingRight: '160px'
|
|
197
|
+
}
|
|
198
|
+
}));
|
|
199
|
+
|
|
200
|
+
export { CreateDateExpired as default };
|
|
201
|
+
//# sourceMappingURL=create.date-expired.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.date-expired.js","sources":["../../../src/form/create.date-expired.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { LocalizationProvider } from '@mui/x-date-pickers'\r\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\r\nimport { Switch, Typography, TextField, styled, Box, TextFieldProps } from '@mui/material'\r\nimport { dayjsCustom, mergeObjects, tryParseIntRequired } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\nconst defaultFormatString = 'MM-DD-YYYY'\r\n\r\nconst dateExpiredClasses = {\r\n root: 'DateExpired-root',\r\n control: 'DateExpired-control',\r\n label: 'DateExpired-label',\r\n labelSwitch: 'DateExpired-labelSwitch',\r\n input: 'DateExpired-input',\r\n switch: 'DateExpired-switch'\r\n}\r\n\r\ninterface ISlots<T> {\r\n /** @default string */\r\n type?: 'number' | 'string'\r\n textFieldProps?: Partial<TextFieldProps>\r\n switchChecked?: boolean\r\n switchCheckedGetter?: (value: any, model?: Partial<T>) => boolean\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T> {\r\n slots?: ISlots<T>\r\n}\r\n\r\ninterface IState {\r\n numberOfDays: number\r\n switchChecked: boolean\r\n}\r\n\r\nfunction CreateDateExpired<T>(params?: ISlots<T>): React.ComponentType<IProps<T>> {\r\n class DateExpired extends Component<IProps<T>, IState> {\r\n defaultNumberOfDays: number = 30\r\n private id\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = {\r\n numberOfDays: this.getNumberOfDays(),\r\n switchChecked: this.slots.switchChecked\r\n }\r\n this.id = new Date().getTime().toString()\r\n }\r\n\r\n get slots(): ISlots<T> & { switchChecked: boolean } {\r\n const { switchChecked, switchCheckedGetter } = this.props.slots ?? {}\r\n const obj = mergeObjects(params, this.props.slots)\r\n let check = (this.defaulValue ? !!this.defaulValue : switchChecked) ?? true\r\n if (switchCheckedGetter) check = switchCheckedGetter(this.defaulValue, this.props.data)\r\n return { ...obj, switchChecked: check }\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n get defaultValueInput(): string | number {\r\n if (this.slots.type === 'number') {\r\n return this.state.numberOfDays\r\n } else {\r\n return this.getOffsetDate(this.state.numberOfDays, 'YYYY-MM-DDTHH:mm:ss.sssZ')\r\n }\r\n }\r\n\r\n getNumberOfDays = (): number => {\r\n if (this.slots.type === 'number') {\r\n return tryParseIntRequired(this.defaulValue, this.defaultNumberOfDays)\r\n } else {\r\n return this.getDaysUntilDate(this.defaulValue, this.defaultNumberOfDays)\r\n }\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <Wrap className={dateExpiredClasses.root}>\r\n <input key={this.defaultValueInput} type='text' hidden name={this.props.name?.toString()} defaultValue={this.defaultValueInput} />\r\n <TextField {...this.mapTextFieldProps()} />\r\n <div className={dateExpiredClasses.control}>\r\n <Typography\r\n variant='caption'\r\n className={dateExpiredClasses.labelSwitch}\r\n {...{ component: 'label', htmlFor: this.id }}\r\n sx={{ color: this.state.switchChecked ? 'success.main' : '#767676' }}\r\n >\r\n {this.state.switchChecked ? 'Use Expiration Date' : 'No Expiration'}\r\n </Typography>\r\n <Switch\r\n id={this.id}\r\n size='small'\r\n color='success'\r\n checked={this.state.switchChecked}\r\n onChange={(_, checked) => this.setState({ switchChecked: checked })}\r\n />\r\n </div>\r\n </Wrap>\r\n </LocalizationProvider>\r\n )\r\n }\r\n //#endregion\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const { messageErrors, name, onBlur } = this.props\r\n const disabled = this.props.disabled || !this.state.switchChecked\r\n const obj: TextFieldProps = {\r\n fullWidth: true,\r\n className: dateExpiredClasses.input,\r\n label: (\r\n <span className={dateExpiredClasses.label}>\r\n Expiry date\r\n {this.state.switchChecked && <b>{this.getOffsetDate(this.state.numberOfDays)}</b>}\r\n </span>\r\n ),\r\n variant: 'outlined',\r\n type: 'number',\r\n disabled: disabled,\r\n value: this.state.switchChecked ? this.state.numberOfDays : 0,\r\n onChange: this.handleChange\r\n }\r\n if (!!name) {\r\n obj.onBlur = () => onBlur && onBlur(name)\r\n const temp = getErrorMessage(messageErrors, name)\r\n if (temp.error) {\r\n obj.error = Boolean(temp.error)\r\n obj.helperText = temp.message ?? ''\r\n }\r\n }\r\n return mergeObjects<TextFieldProps>({}, obj, this.slots.textFieldProps)\r\n }\r\n\r\n handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const numberOfDays: number = e.target.value != '' ? parseInt(e.target.value) : 0\r\n this.setState({ numberOfDays })\r\n }\r\n\r\n getOffsetDate = (num: number, formatString = defaultFormatString): string => {\r\n return dayjsCustom().add(num, 'day').format(formatString)\r\n }\r\n\r\n getDaysUntilDate = (value?: string, defaultValue = 0): number => {\r\n try {\r\n if (!value) return defaultValue\r\n const target = dayjsCustom(value)\r\n const today = dayjsCustom()\r\n const diff = target.diff(today, 'day', true)\r\n return Math.round(diff)\r\n } catch {\r\n return defaultValue\r\n }\r\n }\r\n }\r\n return DateExpired\r\n}\r\nexport default CreateDateExpired\r\n\r\nconst Wrap = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '10px',\r\n position: 'relative',\r\n [`.${dateExpiredClasses.switch}`]: {\r\n margin: 0,\r\n flex: '0 0 auto'\r\n },\r\n [`.${dateExpiredClasses.label}`]: {\r\n b: {\r\n color: '#1976d2',\r\n marginLeft: '8px'\r\n }\r\n },\r\n [`.${dateExpiredClasses.labelSwitch}`]: {\r\n fontWeight: 600,\r\n cursor: 'pointer'\r\n },\r\n [`.${dateExpiredClasses.control}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n [`.${dateExpiredClasses.input}`]: {\r\n '.MuiInputBase-input': {\r\n paddingRight: '160px'\r\n }\r\n }\r\n})\r\n"],"names":["defaultFormatString","dateExpiredClasses","root","control","label","labelSwitch","input","CreateDateExpired","params","DateExpired","_Component","props","_this","_classCallCheck","_callSuper","defaultNumberOfDays","getNumberOfDays","slots","type","tryParseIntRequired","defaulValue","getDaysUntilDate","mapTextFieldProps","_this$props","messageErrors","name","onBlur","disabled","state","switchChecked","obj","fullWidth","className","React","createElement","getOffsetDate","numberOfDays","variant","value","onChange","handleChange","temp","getErrorMessage","error","Boolean","helperText","_a","message","mergeObjects","textFieldProps","e","target","parseInt","setState","num","formatString","arguments","length","undefined","dayjsCustom","add","format","defaultValue","today","diff","Math","round","id","Date","getTime","toString","_inherits","_createClass","key","get","_ref","switchCheckedGetter","check","_b","data","Object","assign","_this$props2","render","_this2","LocalizationProvider","dateAdapter","AdapterDayjs","Wrap","defaultValueInput","hidden","TextField","Typography","component","htmlFor","sx","color","Switch","size","checked","_","Component","styled","Box","_defineProperty","display","alignItems","gap","position","concat","margin","flex","b","marginLeft","fontWeight","cursor","top","right","height","paddingRight"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
import { styled } from '@mui/material';
|
|
4
|
+
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
5
|
+
import { DatePicker, LocalizationProvider } from '@mui/x-date-pickers';
|
|
6
|
+
import { mergeObjects as _mergeObjects } from '../utils/helpers.js';
|
|
7
|
+
import '../utils/query-param.js';
|
|
8
|
+
import '../utils/dayjs-config.js';
|
|
9
|
+
import { getErrorMessage } from './helper.js';
|
|
10
|
+
import dayjs from 'dayjs';
|
|
11
|
+
|
|
12
|
+
var formatDefault = 'MM/DD/YYYY';
|
|
13
|
+
var CreateDatePicker = function CreateDatePicker(params) {
|
|
14
|
+
var DatePicker = /*#__PURE__*/function (_Component) {
|
|
15
|
+
function DatePicker(props) {
|
|
16
|
+
var _this;
|
|
17
|
+
_classCallCheck(this, DatePicker);
|
|
18
|
+
var _a;
|
|
19
|
+
_this = _callSuper(this, DatePicker, [props]);
|
|
20
|
+
_this._cachedSlots = {};
|
|
21
|
+
_this.getDatePickerProps = function () {
|
|
22
|
+
var _a, _b, _c, _d, _e;
|
|
23
|
+
var delayInDays = (_a = params === null || params === void 0 ? void 0 : params.minDateOffset) !== null && _a !== void 0 ? _a : 0;
|
|
24
|
+
var minDate = delayInDays > 0 ? dayjs().add(delayInDays, 'day').startOf('day') : params === null || params === void 0 ? void 0 : params.minDate;
|
|
25
|
+
var label = (_b = _this.props.label) !== null && _b !== void 0 ? _b : (_c = _this.props.name) === null || _c === void 0 ? void 0 : _c.toString();
|
|
26
|
+
var format = (_d = _this.props.format) !== null && _d !== void 0 ? _d : formatDefault;
|
|
27
|
+
var eMessage = getErrorMessage(_this.props.messageErrors, _this.props.name);
|
|
28
|
+
var obj = {
|
|
29
|
+
label: label,
|
|
30
|
+
format: format,
|
|
31
|
+
views: ['day', 'month', 'year'],
|
|
32
|
+
value: _this.state.value,
|
|
33
|
+
onChange: _this.handleChange,
|
|
34
|
+
disabled: _this.props.disabled,
|
|
35
|
+
minDate: minDate,
|
|
36
|
+
slotProps: {
|
|
37
|
+
textField: {
|
|
38
|
+
onBlur: _this.handleBlur,
|
|
39
|
+
fullWidth: true,
|
|
40
|
+
error: eMessage.error,
|
|
41
|
+
helperText: eMessage.message,
|
|
42
|
+
variant: 'outlined'
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
return _mergeObjects(obj, params === null || params === void 0 ? void 0 : params.datePickerProps, (_e = _this.slots) === null || _e === void 0 ? void 0 : _e.datePickerProps);
|
|
47
|
+
};
|
|
48
|
+
_this.refInput = null;
|
|
49
|
+
_this.mergeSlots = function (currentSlots) {
|
|
50
|
+
return _mergeObjects({}, params, currentSlots);
|
|
51
|
+
};
|
|
52
|
+
_this.handleBlur = function () {
|
|
53
|
+
if (!_this.props.name) return;
|
|
54
|
+
_this.props.onBlur && _this.props.onBlur(_this.props.name);
|
|
55
|
+
};
|
|
56
|
+
_this.handleChange = function (newValue) {
|
|
57
|
+
_this.setState({
|
|
58
|
+
value: newValue
|
|
59
|
+
});
|
|
60
|
+
if (_this.refInput) {
|
|
61
|
+
_this.refInput.value = newValue && !isNaN(newValue.toDate().getTime()) ? newValue.toDate().toISOString() : '';
|
|
62
|
+
}
|
|
63
|
+
setTimeout(_this.handleBlur, 50);
|
|
64
|
+
};
|
|
65
|
+
_this.getDefaultValue = function () {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
try {
|
|
68
|
+
if (!_this.props.defaultValue && !_this.slots.defaultValue && _this.slots.minDateOffset) return dayjs().add(1, 'day').startOf('day');
|
|
69
|
+
if (!_this.props.defaultValue && _this.slots.minDate) return _this.slots.minDate;
|
|
70
|
+
var _this$props = _this.props,
|
|
71
|
+
data = _this$props.data,
|
|
72
|
+
name = _this$props.name;
|
|
73
|
+
var dValue = (_b = (_a = _this.props.defaultValue) !== null && _a !== void 0 ? _a : _this.slots.defaultValue) !== null && _b !== void 0 ? _b : name ? data === null || data === void 0 ? void 0 : data[name] : '';
|
|
74
|
+
return dValue ? dayjs(dValue.toString()) : dayjs();
|
|
75
|
+
} catch (_c) {
|
|
76
|
+
return dayjs();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
_this._cachedSlots = (_a = _this.mergeSlots(props.slots)) !== null && _a !== void 0 ? _a : {};
|
|
80
|
+
_this.state = {
|
|
81
|
+
value: _this.getDefaultValue()
|
|
82
|
+
};
|
|
83
|
+
return _this;
|
|
84
|
+
}
|
|
85
|
+
_inherits(DatePicker, _Component);
|
|
86
|
+
return _createClass(DatePicker, [{
|
|
87
|
+
key: "slots",
|
|
88
|
+
get: function get() {
|
|
89
|
+
return this._cachedSlots;
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: "componentDidUpdate",
|
|
93
|
+
value: function componentDidUpdate(prevProps) {
|
|
94
|
+
if (prevProps.slots !== this.props.slots) {
|
|
95
|
+
this._cachedSlots = this.mergeSlots(this.props.slots);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "render",
|
|
100
|
+
value: function render() {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
var _a, _b;
|
|
103
|
+
return /*#__PURE__*/React.createElement(LocalizationProvider, {
|
|
104
|
+
dateAdapter: AdapterDayjs
|
|
105
|
+
}, /*#__PURE__*/React.createElement(CustomDatePicker, this.getDatePickerProps()), /*#__PURE__*/React.createElement("input", {
|
|
106
|
+
hidden: true,
|
|
107
|
+
name: (_a = this.props.name) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
108
|
+
defaultValue: (_b = this.getDefaultValue()) === null || _b === void 0 ? void 0 : _b.toDate().toISOString(),
|
|
109
|
+
ref: function ref(_ref) {
|
|
110
|
+
return _this2.refInput = _ref;
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
}]);
|
|
115
|
+
}(Component);
|
|
116
|
+
return DatePicker;
|
|
117
|
+
};
|
|
118
|
+
var CustomDatePicker = styled(DatePicker)({
|
|
119
|
+
'& .MuiInputBase-root::before, & .MuiInputBase-root::after': {
|
|
120
|
+
borderBottom: 'none !important'
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
export { CreateDatePicker as default };
|
|
125
|
+
//# sourceMappingURL=create.date-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.date-picker.js","sources":["../../../src/form/create.date-picker.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { styled } from '@mui/material'\r\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\r\nimport { DatePicker as MUIDatePicker, LocalizationProvider, DatePickerProps } from '@mui/x-date-pickers'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { Dayjs } from 'dayjs'\r\n\r\nconst formatDefault = 'MM/DD/YYYY'\r\n\r\ninterface ISlots {\r\n defaultValue?: string\r\n minDate?: Dayjs\r\n minDateOffset?: number\r\n datePickerProps?: DatePickerProps<Dayjs>\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T> {\r\n format?: string\r\n slots?: Omit<ISlots, 'defaultValue'>\r\n}\r\n\r\ninterface IState {\r\n value: Dayjs | null\r\n}\r\n\r\nconst CreateDatePicker = function <T extends Object>(params?: ISlots): React.ComponentType<IProps<T>> {\r\n class DatePicker extends Component<IProps<T>, IState> {\r\n private _cachedSlots: ISlots = {}\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.getDefaultValue() }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n componentDidUpdate(prevProps: IProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n getDatePickerProps = (): DatePickerProps<Dayjs> => {\r\n const delayInDays = params?.minDateOffset ?? 0\r\n const minDate = delayInDays > 0 ? dayjsCustom().add(delayInDays, 'day').startOf('day') : params?.minDate\r\n const label = this.props.label ?? this.props.name?.toString()\r\n const format = this.props.format ?? formatDefault\r\n const eMessage = getErrorMessage<T>(this.props.messageErrors, this.props.name)\r\n const obj: DatePickerProps<Dayjs> = {\r\n label,\r\n format,\r\n views: ['day', 'month', 'year'],\r\n value: this.state.value,\r\n onChange: this.handleChange,\r\n disabled: this.props.disabled,\r\n minDate,\r\n slotProps: {\r\n textField: { onBlur: this.handleBlur, fullWidth: true, error: eMessage.error, helperText: eMessage.message, variant: 'outlined' }\r\n }\r\n }\r\n return mergeObjects(obj, params?.datePickerProps, this.slots?.datePickerProps)\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n render() {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <CustomDatePicker {...this.getDatePickerProps()} />\r\n <input\r\n hidden\r\n name={this.props.name?.toString()}\r\n defaultValue={this.getDefaultValue()?.toDate().toISOString()}\r\n ref={(ref) => (this.refInput = ref)}\r\n />\r\n </LocalizationProvider>\r\n )\r\n }\r\n\r\n private mergeSlots = (currentSlots?: ISlots): ISlots => {\r\n return mergeObjects<ISlots>({}, params, currentSlots)\r\n }\r\n\r\n handleBlur = () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n\r\n handleChange = (newValue: Dayjs | null) => {\r\n this.setState({ value: newValue })\r\n if (this.refInput) {\r\n this.refInput.value = newValue && !isNaN(newValue.toDate().getTime()) ? newValue.toDate().toISOString() : ''\r\n }\r\n setTimeout(this.handleBlur, 50)\r\n }\r\n\r\n getDefaultValue = (): Dayjs => {\r\n try {\r\n if (!this.props.defaultValue && !this.slots.defaultValue && this.slots.minDateOffset) return dayjsCustom().add(1, 'day').startOf('day')\r\n if (!this.props.defaultValue && this.slots.minDate) return this.slots.minDate\r\n\r\n const { data, name } = this.props\r\n const dValue = this.props.defaultValue ?? this.slots.defaultValue ?? (name ? data?.[name] : '')\r\n return dValue ? dayjsCustom(dValue.toString()) : dayjsCustom()\r\n } catch {\r\n return dayjsCustom()\r\n }\r\n }\r\n }\r\n return DatePicker\r\n}\r\n\r\nexport default CreateDatePicker\r\n\r\nconst CustomDatePicker = styled(MUIDatePicker<Dayjs>)({\r\n '& .MuiInputBase-root::before, & .MuiInputBase-root::after': {\r\n borderBottom: 'none !important'\r\n }\r\n})\r\n"],"names":["formatDefault","CreateDatePicker","params","DatePicker","_Component","props","_this","_classCallCheck","_callSuper","_cachedSlots","getDatePickerProps","delayInDays","_a","minDateOffset","minDate","dayjsCustom","add","startOf","label","_b","_c","name","toString","format","_d","eMessage","getErrorMessage","messageErrors","obj","views","value","state","onChange","handleChange","disabled","slotProps","textField","onBlur","handleBlur","fullWidth","error","helperText","message","variant","mergeObjects","datePickerProps","slots","_e","refInput","mergeSlots","currentSlots","newValue","setState","isNaN","toDate","getTime","toISOString","setTimeout","getDefaultValue","defaultValue","_this$props","data","dValue","_inherits","_createClass","key","get","componentDidUpdate","prevProps","render","_this2","React","createElement","LocalizationProvider","dateAdapter","AdapterDayjs","CustomDatePicker","hidden","ref","Component","styled","MUIDatePicker","borderBottom"],"mappings":"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"}
|