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.
Files changed (214) hide show
  1. package/README.md +54 -0
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js +431 -0
  3. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  4. package/dist/assets/vector-404265a04f4f9c8be1f.webp +0 -0
  5. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js +46 -0
  6. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js.map +1 -0
  7. package/dist/src/api-context/alert-global.js +151 -0
  8. package/dist/src/api-context/alert-global.js.map +1 -0
  9. package/dist/src/api-context/drawer-global.js +105 -0
  10. package/dist/src/api-context/drawer-global.js.map +1 -0
  11. package/dist/src/api-context/global-modal.js +87 -0
  12. package/dist/src/api-context/global-modal.js.map +1 -0
  13. package/dist/src/api-context/popover-global.js +102 -0
  14. package/dist/src/api-context/popover-global.js.map +1 -0
  15. package/dist/src/api-context/popover.js +86 -0
  16. package/dist/src/api-context/popover.js.map +1 -0
  17. package/dist/src/api-context/ui.units.js +21 -0
  18. package/dist/src/api-context/ui.units.js.map +1 -0
  19. package/dist/src/components/copy-to-clipboard.js +105 -0
  20. package/dist/src/components/copy-to-clipboard.js.map +1 -0
  21. package/dist/src/components/custom.breadcrumbs.js +61 -0
  22. package/dist/src/components/custom.breadcrumbs.js.map +1 -0
  23. package/dist/src/components/help-tooltip.js +91 -0
  24. package/dist/src/components/help-tooltip.js.map +1 -0
  25. package/dist/src/components/image-with-fallback.js +48 -0
  26. package/dist/src/components/image-with-fallback.js.map +1 -0
  27. package/dist/src/components/text-editor.js +117 -0
  28. package/dist/src/components/text-editor.js.map +1 -0
  29. package/dist/src/form/create.autocomplete.chips.js +218 -0
  30. package/dist/src/form/create.autocomplete.chips.js.map +1 -0
  31. package/dist/src/form/create.date-expired.js +201 -0
  32. package/dist/src/form/create.date-expired.js.map +1 -0
  33. package/dist/src/form/create.date-picker.js +125 -0
  34. package/dist/src/form/create.date-picker.js.map +1 -0
  35. package/dist/src/form/create.form-base.js +135 -0
  36. package/dist/src/form/create.form-base.js.map +1 -0
  37. package/dist/src/form/create.form-comfirm.js +119 -0
  38. package/dist/src/form/create.form-comfirm.js.map +1 -0
  39. package/dist/src/form/create.form-grid-layout.js +177 -0
  40. package/dist/src/form/create.form-grid-layout.js.map +1 -0
  41. package/dist/src/form/create.form-grid-layout.units.js +39 -0
  42. package/dist/src/form/create.form-grid-layout.units.js.map +1 -0
  43. package/dist/src/form/create.input-base.js +260 -0
  44. package/dist/src/form/create.input-base.js.map +1 -0
  45. package/dist/src/form/create.input.file.js +74 -0
  46. package/dist/src/form/create.input.file.js.map +1 -0
  47. package/dist/src/form/create.select-simple.js +104 -0
  48. package/dist/src/form/create.select-simple.js.map +1 -0
  49. package/dist/src/form/create.select-with-api.js +271 -0
  50. package/dist/src/form/create.select-with-api.js.map +1 -0
  51. package/dist/src/form/create.text-editor.js +156 -0
  52. package/dist/src/form/create.text-editor.js.map +1 -0
  53. package/dist/src/form/dino-form.js +42 -0
  54. package/dist/src/form/dino-form.js.map +1 -0
  55. package/dist/src/form/helper.js +157 -0
  56. package/dist/src/form/helper.js.map +1 -0
  57. package/dist/src/form/modal-wrapper.js +75 -0
  58. package/dist/src/form/modal-wrapper.js.map +1 -0
  59. package/dist/src/form/validator.js +186 -0
  60. package/dist/src/form/validator.js.map +1 -0
  61. package/dist/src/hooks/index.js +48 -0
  62. package/dist/src/hooks/index.js.map +1 -0
  63. package/dist/src/index.js +26 -0
  64. package/dist/src/index.js.map +1 -0
  65. package/dist/src/redux/create.hoc-lazy.js +67 -0
  66. package/dist/src/redux/create.hoc-lazy.js.map +1 -0
  67. package/dist/src/redux/dino.js +11 -0
  68. package/dist/src/redux/dino.js.map +1 -0
  69. package/dist/src/redux/types.js +9 -0
  70. package/dist/src/redux/types.js.map +1 -0
  71. package/dist/src/redux/ui.error-page.js +80 -0
  72. package/dist/src/redux/ui.error-page.js.map +1 -0
  73. package/dist/src/redux/vector-404.webp.js +4 -0
  74. package/dist/src/redux/vector-404.webp.js.map +1 -0
  75. package/dist/src/table/context.js +12 -0
  76. package/dist/src/table/context.js.map +1 -0
  77. package/dist/src/table/create.action-row.js +135 -0
  78. package/dist/src/table/create.action-row.js.map +1 -0
  79. package/dist/src/table/create.status-cell.js +49 -0
  80. package/dist/src/table/create.status-cell.js.map +1 -0
  81. package/dist/src/table/create.table.js +233 -0
  82. package/dist/src/table/create.table.js.map +1 -0
  83. package/dist/src/table/custom.filter-operators.js +89 -0
  84. package/dist/src/table/custom.filter-operators.js.map +1 -0
  85. package/dist/src/table/dino.js +129 -0
  86. package/dist/src/table/dino.js.map +1 -0
  87. package/dist/src/table/helpers.js +116 -0
  88. package/dist/src/table/helpers.js.map +1 -0
  89. package/dist/src/table/model-filter.js +23 -0
  90. package/dist/src/table/model-filter.js.map +1 -0
  91. package/dist/src/table/toolbar-pannel.js +134 -0
  92. package/dist/src/table/toolbar-pannel.js.map +1 -0
  93. package/dist/src/table/ui.buttons.js +60 -0
  94. package/dist/src/table/ui.buttons.js.map +1 -0
  95. package/dist/src/table/ui.units.js +201 -0
  96. package/dist/src/table/ui.units.js.map +1 -0
  97. package/dist/src/utils/dayjs-config.js +12 -0
  98. package/dist/src/utils/dayjs-config.js.map +1 -0
  99. package/dist/src/utils/helpers.js +197 -0
  100. package/dist/src/utils/helpers.js.map +1 -0
  101. package/dist/src/utils/json-object.js +38 -0
  102. package/dist/src/utils/json-object.js.map +1 -0
  103. package/dist/src/utils/query-param.js +172 -0
  104. package/dist/src/utils/query-param.js.map +1 -0
  105. package/package.json +52 -0
  106. package/rollup.config.js +39 -0
  107. package/src/@types/global.d.ts +5 -0
  108. package/src/api-context/alert-global.tsx +174 -0
  109. package/src/api-context/drawer-global.tsx +116 -0
  110. package/src/api-context/global-modal.tsx +109 -0
  111. package/src/api-context/index.ts +13 -0
  112. package/src/api-context/popover-global.tsx +107 -0
  113. package/src/api-context/popover.tsx +89 -0
  114. package/src/api-context/ui.units.tsx +10 -0
  115. package/src/components/copy-to-clipboard.tsx +86 -0
  116. package/src/components/custom.breadcrumbs.tsx +67 -0
  117. package/src/components/help-tooltip.tsx +75 -0
  118. package/src/components/image-with-fallback.tsx +51 -0
  119. package/src/components/index.tsx +1 -0
  120. package/src/components/input-debounce-timer.tsx +138 -0
  121. package/src/components/loading-buttons.tsx +35 -0
  122. package/src/components/text-editor.preview.tsx +30 -0
  123. package/src/components/text-editor.tsx +125 -0
  124. package/src/form/README.md +55 -0
  125. package/src/form/create.autocomplete.chips.tsx +199 -0
  126. package/src/form/create.date-expired.tsx +195 -0
  127. package/src/form/create.date-picker.tsx +122 -0
  128. package/src/form/create.form-base.tsx +102 -0
  129. package/src/form/create.form-comfirm.tsx +83 -0
  130. package/src/form/create.form-grid-layout.tsx +170 -0
  131. package/src/form/create.form-grid-layout.units.tsx +37 -0
  132. package/src/form/create.input-base.tsx +222 -0
  133. package/src/form/create.input.file.tsx +76 -0
  134. package/src/form/create.select-simple.tsx +101 -0
  135. package/src/form/create.select-with-api.tsx +213 -0
  136. package/src/form/create.text-editor.tsx +161 -0
  137. package/src/form/dino-form.tsx +40 -0
  138. package/src/form/helper.ts +132 -0
  139. package/src/form/index.ts +12 -0
  140. package/src/form/modal-wrapper.tsx +75 -0
  141. package/src/form/types.ts +16 -0
  142. package/src/form/validator.ts +202 -0
  143. package/src/hooks/index.ts +44 -0
  144. package/src/index.ts +7 -0
  145. package/src/lab/create.autocomplete.simple.tsx +57 -0
  146. package/src/lab/create.dino-store.ts +59 -0
  147. package/src/lab/create.multi-select-dropdown.tsx +189 -0
  148. package/src/lab/create.select-mul-with-api/index.tsx +271 -0
  149. package/src/lab/create.select-mul-with-api/table-custom.tsx +194 -0
  150. package/src/lab/create.select-mul-with-api/types.ts +26 -0
  151. package/src/lab/create.select-mul-with-api/ui.units.tsx +163 -0
  152. package/src/lab/filter-bar/base.tsx +162 -0
  153. package/src/lab/filter-bar/create.filter-bar.tsx +190 -0
  154. package/src/lab/filter-bar/create.filter-menu.tsx +156 -0
  155. package/src/lab/filter-bar/create.filter-panel.tsx +95 -0
  156. package/src/lab/filter-bar/create.filtered.tsx +41 -0
  157. package/src/lab/filter-bar/create.sort-menu.tsx +43 -0
  158. package/src/lab/filter-bar/demo.tsx +50 -0
  159. package/src/lab/filter-bar/index.ts +6 -0
  160. package/src/lab/filter-bar/types.ts +105 -0
  161. package/src/lab/filter-bar/ui.units.tsx +70 -0
  162. package/src/lab/grafana-dashboard/configs.ts +43 -0
  163. package/src/lab/grafana-dashboard/date-time-range/absolute-time-rage.tsx +137 -0
  164. package/src/lab/grafana-dashboard/date-time-range/helpers.ts +126 -0
  165. package/src/lab/grafana-dashboard/date-time-range/index.tsx +62 -0
  166. package/src/lab/grafana-dashboard/date-time-range/menu-wrap.tsx +101 -0
  167. package/src/lab/grafana-dashboard/date-time-range/quick-ranges.tsx +161 -0
  168. package/src/lab/grafana-dashboard/date-time-range/types.ts +9 -0
  169. package/src/lab/grafana-dashboard/date-time-range/units.tsx +18 -0
  170. package/src/lab/grafana-dashboard/helper.ts +25 -0
  171. package/src/lab/grafana-dashboard/hooks.tsx +79 -0
  172. package/src/lab/grafana-dashboard/icons.tsx +67 -0
  173. package/src/lab/grafana-dashboard/index.tsx +120 -0
  174. package/src/lab/grafana-dashboard/top-bar.tsx +62 -0
  175. package/src/lab/grafana-dashboard/top-bar.types.ts +5 -0
  176. package/src/lab/grafana-dashboard/types.ts +8 -0
  177. package/src/lab/media-player.core1.tsx +273 -0
  178. package/src/lab/media-player.muted.tsx +62 -0
  179. package/src/lab/media-player.units.ts +80 -0
  180. package/src/lab/table-grid/create.table-grid.tsx +183 -0
  181. package/src/lab/table-grid/demo.tsx +53 -0
  182. package/src/lab/table-grid/dino.tsx +8 -0
  183. package/src/lab/table-grid/helpers.tsx +11 -0
  184. package/src/lab/table-grid/index.ts +3 -0
  185. package/src/lab/table-grid/item-actions.tsx +138 -0
  186. package/src/lab/table-grid/toolbar-pannel.tsx +98 -0
  187. package/src/lab/table-grid/types.ts +68 -0
  188. package/src/redux/create.hoc-lazy.tsx +80 -0
  189. package/src/redux/dino.ts +9 -0
  190. package/src/redux/index.ts +6 -0
  191. package/src/redux/types.ts +27 -0
  192. package/src/redux/ui.error-page.tsx +62 -0
  193. package/src/redux/ui.units.tsx +41 -0
  194. package/src/redux/vector-404.webp +0 -0
  195. package/src/table/context.tsx +16 -0
  196. package/src/table/create.action-row.tsx +91 -0
  197. package/src/table/create.status-cell.tsx +51 -0
  198. package/src/table/create.table.tsx +239 -0
  199. package/src/table/custom.filter-operators.ts +94 -0
  200. package/src/table/dino.tsx +120 -0
  201. package/src/table/helpers.ts +94 -0
  202. package/src/table/index.ts +13 -0
  203. package/src/table/model-filter.ts +43 -0
  204. package/src/table/toolbar-pannel.tsx +106 -0
  205. package/src/table/types.ts +50 -0
  206. package/src/table/ui.buttons.tsx +54 -0
  207. package/src/table/ui.units.tsx +189 -0
  208. package/src/utils/dayjs-config.ts +13 -0
  209. package/src/utils/helpers.ts +171 -0
  210. package/src/utils/index.ts +7 -0
  211. package/src/utils/json-object.ts +29 -0
  212. package/src/utils/mfe-events.tsx +34 -0
  213. package/src/utils/query-param.ts +129 -0
  214. 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":";;;;;;AAoBwB,SAAAA,sBAAsBA,CAAIC,OAAkB,EAAA;AAClE,EAAA,IAAMC,SAAS,GAAG,CAAAD,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAAA,OAAO,CAAEC,SAAS,KAAI,GAAG;AAC3C,EAAA,IAAMC,SAAS,GAAG,CAAAF,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAAA,OAAO,CAAEE,SAAS,KAAI,CAAC;AACzC,EAAA,IAAMC,UAAU,GAAG,CAAAH,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAAA,OAAO,CAAEI,qBAAqB,IAAGC,qBAAqB,CAACC,OAAO,CAACN,OAAO,CAACI,qBAAqB,CAAC,GAAGG,SAAS;AAE5H,EAAA,oBAAA,UAAAC,UAAA,EAAA;IACE,SAAAC,gBAAAA,CAAYC,KAAgB,EAAA;AAAA,MAAA,IAAAC,KAAA;AAAAC,MAAAA,eAAA,OAAAH,gBAAA,CAAA;AAC1BE,MAAAA,KAAA,GAAAE,UAAA,CAAAJ,IAAAA,EAAAA,gBAAA,GAAMC,KAAK,CAAA,CAAA;MAObC,KAAA,CAAQG,QAAA,GAA4B,IAAI;AA4CxCH,MAAAA,KAAA,CAAAI,gBAAgB,GAAG,UAACC,CAAkD,EAAEC,KAAa,EAAI;;QACvFD,CAAC,CAACE,cAAc,EAAE;QAClBF,CAAC,CAACG,eAAe,EAAE;AACnBC,QAAAA,OAAO,CAACC,GAAG,CAACJ,KAAK,CAAC;AAClB,QAAA,IAAMK,IAAI,GAAG,CAAAC,EAAA,GAAApB,UAAU,aAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAQ,QAAA,CAAA,CAACc,KAAK,CAAC,MAAA,IAAA,IAAAM,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,EAAE;QAC5CZ,KAAA,CAAKa,QAAQ,CAAC;AAAExB,UAAAA,OAAO,EAAEsB;AAAM,SAAA,CAAC;OACjC;AAEDX,MAAAA,KAAA,CAAAc,eAAe,GAAG,UAACC,CAAuB,EAAEC,QAAkB,EAAI;;AAChE,QAAA,IAAI3B,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEI,qBAAqB,EAAE;AAClC,UAAA,IAAMJ,QAAO,GAAG,CAAAuB,EAAA,GAAApB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAV,MAAA,GAAA,MAAA,GAAAA,UAAU,CAAEyB,QAAQ,CAACjB,KAAA,CAAKkB,KAAK,CAAC7B,OAAO,EAAE2B,QAAQ,CAAC,MAAI,IAAA,IAAAJ,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAAZ,KAAA,CAAKkB,KAAK,CAAC7B,OAAO;UACxFW,KAAA,CAAKa,QAAQ,CAAC;AAAEP,YAAAA,KAAK,EAAEU,QAAQ;AAAE3B,YAAAA,OAAO,EAAPA;AAAS,WAAA,CAAC;AAC5C,SAAA,MAAM;UACLW,KAAA,CAAKa,QAAQ,CAAC;AAAEP,YAAAA,KAAK,EAAEU;AAAU,WAAA,CAAC;AACnC;QACD,IAAIhB,KAAA,CAAKG,QAAQ,EAAE;UACjBH,KAAA,CAAKG,QAAQ,CAACG,KAAK,GAAGU,QAAQ,CAACG,IAAI,CAAC7B,SAAS,CAAC;AAC/C;QACDU,KAAA,CAAKD,KAAK,CAACqB,IAAI,IAAIpB,KAAA,CAAKD,KAAK,CAACsB,MAAM,IAAIrB,KAAA,CAAKD,KAAK,CAACsB,MAAM,CAACrB,KAAA,CAAKD,KAAK,CAACqB,IAAI,CAAC;OAC3E;AAEDpB,MAAAA,KAAA,CAAAsB,iBAAiB,GAAG,UAAChB,KAAa,EAAI;;QACpC,IAAMiB,gBAAgB,GAAGvB,KAAA,CAAKkB,KAAK,CAACZ,KAAK,CAACkB,SAAS,CAAC,UAACC,CAAC,EAAA;UAAA,OAAKA,CAAC,KAAKnB,KAAK;AAAA,SAAA,CAAC,GAAG,CAAC;AAC3E,QAAA,IAAMoB,aAAa,GAAG,CAAAC,EAAA,GAAA,CAAAf,EAAA,GAAAvB,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAAA,OAAO,CAAEuC,WAAW,mCAAI,CAAAC,EAAA,GAAA7B,KAAA,CAAKD,KAAK,CAAC+B,KAAK,MAAE,IAAA,IAAAD,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAAD,WAAW,MAAI,IAAA,IAAAD,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAA,EAAE;AACjF,QAAA,IAAMI,SAAS,GAAGL,aAAa,CAACF,SAAS,CAAC,UAACC,CAAC,EAAA;UAAA,OAAKA,CAAC,KAAKnB,KAAK;AAAA,SAAA,CAAC,GAAG,CAAC;QACjE,OAAOyB,SAAS,IAAIR,gBAAgB;OACrC;MAEDvB,KAAA,CAAgBgC,gBAAA,GAAG,YAAK;;AACtB,QAAA,IAAIC,KAAK,GAAG,CAAArB,EAAA,GAAAvB,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAAA,OAAO,CAAEuC,WAAW,MAAI,IAAA,IAAAhB,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAA,EAAE;AACtC,QAAA,IAAIvB,OAAO,KAAP,IAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEI,qBAAqB,EAAE;AAClCwC,UAAAA,KAAK,GAAG,CAAAJ,EAAA,GAAArC,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAV,MAAA,GAAA,MAAA,GAAAA,UAAU,CAAE0C,gBAAgB,CAACD,KAAK,CAAC,MAAA,IAAA,IAAAJ,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,EAAE;AAClD;AACD,QAAA,OAAOI,KAAK;OACb;MAEDjC,KAAA,CAAiBmC,iBAAA,GAAG,YAAqB;AACvC,QAAA,IAAAC,WAAA,GAA4DpC,KAAA,CAAKD,KAAK;UAA9DqB,IAAI,GAAAgB,WAAA,CAAJhB,IAAI;UAAEiB,KAAK,GAAAD,WAAA,CAALC,KAAK;UAAEC,WAAW,GAAAF,WAAA,CAAXE,WAAW;UAAEjB,OAAM,GAAAe,WAAA,CAANf,MAAM;UAAEkB,aAAa,GAAAH,WAAA,CAAbG,aAAa;AACvD,QAAA,IAAMC,QAAQ,GAAGC,eAAe,CAACF,aAAa,EAAEnB,IAAI,CAAC;QACrD,OAAO;AACLiB,UAAAA,KAAK,EAALA,KAAK;UACLC,WAAW,EAAEA,WAAW,IAAI,SAAS;AACrCjB,UAAAA,MAAM,EAAE,SAARA,MAAMA,GAAO;YACX,IAAI,CAACD,IAAI,EAAE;AACXC,YAAAA,OAAM,IAAIA,OAAM,CAACD,IAAI,CAAC;WACvB;UACDsB,KAAK,EAAEF,QAAQ,CAACE,KAAK;UACrBC,UAAU,EAAEH,QAAQ,CAACI;SACtB;OACF;MAED5C,KAAA,CAAe6C,eAAA,GAAG,YAAe;;AAC/B,QAAA,IAAAC,YAAA,GAAuB9C,KAAA,CAAKD,KAAK;UAAzBqB,IAAI,GAAA0B,YAAA,CAAJ1B,IAAI;UAAE2B,IAAI,GAAAD,YAAA,CAAJC,IAAI;AAClB,QAAA,IAAMzC,KAAK,GAAGc,IAAI,GAAG,CAAAR,EAAA,GAAAmC,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAG3B,IAAI,CAAC,MAAE,IAAA,IAAAR,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAAoC,QAAQ,EAAE,GAAG,EAAE;QAClD,OAAO,CAAAnB,EAAA,GAAAvB,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE2C,KAAK,CAAC3D,SAAS,CAAE,CAAA4D,MAAM,CAAC,UAACzB,CAAC,EAAA;UAAA,OAAK,CAAC,CAACA,CAAC;SAAC,CAAA,MAAI,IAAA,IAAAI,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAA,EAAE;OACxD;MAzGC7B,KAAA,CAAKkB,KAAK,GAAG;AACXZ,QAAAA,KAAK,EAAEN,KAAA,CAAK6C,eAAe,EAAE;AAC7BxD,QAAAA,OAAO,EAAEW,KAAA,CAAKgC,gBAAgB;OAC/B;AAAA,MAAA,OAAAhC,KAAA;AACH;IAACmD,SAAA,CAAArD,gBAAA,EAAAD,UAAA,CAAA;IAAA,OAAAuD,YAAA,CAAAtD,gBAAA,EAAA,CAAA;MAAAuD,GAAA,EAAA,QAAA;AAAA/C,MAAAA,KAAA,EAGD,SAAAgD,MAAMA,GAAA;AAAA,QAAA,IAAAC,MAAA,GAAA,IAAA;AACJ,QAAA,IAAQnC,IAAI,GAAK,IAAI,CAACrB,KAAK,CAAnBqB,IAAI;AACZ,QAAA,oBACEoC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,eACEF,KAAA,CAAAC,aAAA,CAACE,YAAY,EAAA;UACXC,QAAQ,EAAA,IAAA;UACRC,QAAQ,EAAA,IAAA;AACRtE,UAAAA,SAAS,EAAEA,SAAU;AACrBe,UAAAA,KAAK,EAAE,IAAI,CAACY,KAAK,CAACZ,KAAM;UACxBwD,QAAQ,EAAE,IAAI,CAAChD,eAAgB;AAC/BzB,UAAAA,OAAO,EAAE,IAAI,CAAC6B,KAAK,CAAC7B,OAAQ;AAC5B0E,UAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGhE,KAAK,EAAEiE,MAAM,EAAA;YAAA,oBAC1BR,KAAA,CAAAC,aAAA,CAACQ,UAAU,EAAAC,QAAA,KAAKnE,KAAK,EAAA;AAAEsD,cAAAA,GAAG,EAAEW;AAAO,aAAA,CAAA,eACjCR,KAAA,CAAAC,aAAA,CAACU,UAAU,EAAA;AAACC,cAAAA,OAAO,EAAC,WAAW;AAACC,cAAAA,EAAE,EAAE;AAAEC,gBAAAA,IAAI,EAAE;AAAC;AAAG,aAAA,EAC7CN,MACS,CACZ,EAACT,MAAI,CAACjC,iBAAiB,CAAC0C,MAAM,CAAC,iBAC7BR,KAAA,CAAAC,aAAA,CAACc,OAAO,EAAA;AAACC,cAAAA,KAAK,EAAC,eAAe;cAACC,KAAK,EAAA,IAAA;AAACC,cAAAA,SAAS,EAAC;AAAM,aAAA,eACnDlB,KAAA,CAAAC,aAAA,CAACkB,UAAU,EAAA;AAACC,cAAAA,IAAI,EAAC,OAAO;AAACC,cAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGxE,CAAC,EAAA;AAAA,gBAAA,OAAKkD,MAAI,CAACnD,gBAAgB,CAACC,CAAC,EAAE2D,MAAM,CAAC;AAAA;AAAC,aAAA,eACxER,KAAA,CAAAC,aAAA,CAACqB,UAAU,EAAA;AAACC,cAAAA,QAAQ,EAAC;aACvB,CAAY,CACL,CAED,CAAC;WACb;AACFC,UAAAA,UAAU,EAAE,SAAZA,UAAUA,CAAGC,QAAQ,EAAEC,WAAW,EAAI;AACpC,YAAA,OAAOD,QAAQ,CAACE,GAAG,CAAC,UAACnB,MAAM,EAAEoB,KAAK,EAAA;AAAA,cAAA,oBAAK5B,KAAA,CAAAC,aAAA,CAAC4B,IAAI,EAAAnB,QAAA,CAAA;AAAC7B,gBAAAA,KAAK,EAAE2B;AAAO,eAAA,EAAKkB,WAAW,CAAC;AAAEE,gBAAAA,KAAK,EAALA;AAAO,eAAA,CAAC,EAAA;AAAE/B,gBAAAA,GAAG,EAAEW,MAAM,CAAChB,QAAQ;AAAG,eAAA,CAAA,CAAG;aAAC,CAAA;WACnH;AACFsC,UAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGC,MAAM,EAAA;YAAA,oBAAK/B,KAAA,CAAAC,aAAA,CAAC+B,SAAS,EAAAtB,QAAA,KAAKqB,MAAM,EAAA;AAAEnB,cAAAA,OAAO,EAAC;AAAU,aAAA,EAAKb,MAAI,CAACpB,iBAAiB,EAAE,CAAC,CAAG;AAAA;AAAC,SAEtG,CAAA,eAAAqB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACEgC,UAAAA,GAAG,EAAE,SAALA,GAAGA,CAAGA,IAAG,EAAI;YACXlC,MAAI,CAACpD,QAAQ,GAAGsF,IAAG;WACnB;UACFC,MAAM,EAAA,IAAA;AACNC,UAAAA,IAAI,EAAC,MAAM;AACXvE,UAAAA,IAAI,EAAEA,IAAI,KAAJ,IAAA,IAAAA,IAAI,uBAAJA,IAAI,CAAE4B,QAAQ,EAAG;UACvB4C,YAAY,EAAE,IAAI,CAAC1E,KAAK,CAACZ,KAAK,CAACa,IAAI,CAAC7B,SAAS;AAAE,SAEnD,CAAA,CAAG;AAEP;AAAC,KAAA,CAAA,CAAA;AAAA,GAAA,CAnDmCuG,SAA4B,CAAA;AA8GpE;AAEA,IAAM5B,UAAU,GAAG6B,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9BC,EAAAA,OAAO,EAAE,MAAM;AACfC,EAAAA,UAAU,EAAE;AACb,CAAA,CAAC;AAAA,IAIItG,qBAAqB,gBAAA0D,YAAA,CAGzB,SAAA1D,qBAAY2D,CAAAA,GAAW,EAAEuC,YAAuB,EAAA;AAAA,EAAA,IAAAK,MAAA,GAAA,IAAA;AAAAhG,EAAAA,eAAA,OAAAP,qBAAA,CAAA;EAFxC,IAAY,CAAAwG,YAAA,GAAG,yBAAyB;EAWxC,IAAO,CAAAC,OAAA,GAAG,YAAqB;IACrC,IAAI;MACF,IAAMC,GAAG,GAAGC,MAAM,CAACC,YAAY,CAACC,OAAO,CAACN,MAAI,CAACC,YAAY,CAAC;AAC1D,MAAA,OAAOM,IAAI,CAACC,KAAK,CAACL,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAHA,GAAG,GAAI,IAAI,CAAC;KAC/B,CAAC,OAAO1D,KAAK,EAAE;AACd,MAAA,OAAO,EAAE;AACV;GACF;EAEO,IAAQ,CAAAgE,QAAA,GAAG,YAAe;IAChC,OAAOT,MAAI,CAACE,OAAO,EAAE,CAACF,MAAI,CAACU,QAAQ,CAAC;GACrC;AAEO,EAAA,IAAA,CAAAC,OAAO,GAAG,UAACtG,KAAqB,EAAI;AAC1C+F,IAAAA,MAAM,CAACC,YAAY,CAACO,OAAO,CAACZ,MAAI,CAACC,YAAY,EAAEM,IAAI,CAACM,SAAS,CAACxG,KAAK,CAAC,CAAC;GACtE;AAEO,EAAA,IAAA,CAAAyG,QAAQ,GAAG,UAACzG,KAAe,EAAI;AACrC,IAAA,IAAM0G,GAAG,GAAGf,MAAI,CAACE,OAAO,EAAE;AAC1Ba,IAAAA,GAAG,CAACf,MAAI,CAACU,QAAQ,CAAC,GAAGrG,KAAK;AAC1B2F,IAAAA,MAAI,CAACW,OAAO,CAACI,GAAG,CAAC;GAClB;AAED,EAAA,IAAA,CAAA9E,gBAAgB,GAAG,UAAC5B,KAAe,EAAc;IAC/C,IAAI;MACF,OAAO2G,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAAA,EAAA,CAAAC,MAAA,CAAAC,kBAAA,CAAKpB,MAAI,CAACS,QAAQ,EAAE,CAAAW,EAAAA,kBAAA,CAAK/G,KAAK,CAAC,CAAA,CAAC,CAAC,CAACgH,IAAI,EAAE;KAClE,CAAC,OAAO5E,KAAK,EAAE;AACd,MAAA,OAAOpC,KAAK;AACb;GACF;AAED,EAAA,IAAA,CAAAW,QAAQ,GAAG,UAAC5B,OAAiB,EAAEiB,KAAe,EAAc;IAC1D,IAAMK,IAAI,GAAGsG,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAAAC,EAAAA,CAAAA,MAAA,CAAAC,kBAAA,CAAKhI,OAAO,CAAA,EAAAgI,kBAAA,CAAK/G,KAAK,CAAA,CAAC,CAAC,CAAC,CAACgH,IAAI,EAAE;AAC/DrB,IAAAA,MAAI,CAACc,QAAQ,CAACpG,IAAI,CAAC;AACnB,IAAA,OAAOA,IAAI;GACZ;AAED,EAAA,IAAA,CAAM,QAAA,CAAA,GAAG,UAACL,KAAa,EAAI;IACzB,IAAMK,IAAI,GAAGsF,MAAI,CAACS,QAAQ,EAAE,CAACxD,MAAM,CAAC,UAACzB,CAAC,EAAA;MAAA,OAAKA,CAAC,KAAKnB,KAAK;KAAC,CAAA;AACvD2F,IAAAA,MAAI,CAACc,QAAQ,CAACpG,IAAI,CAAC;AACnB,IAAA,OAAOA,IAAI;GACZ;EAjDC,IAAI,CAACgG,QAAQ,GAAGtD,GAAG;AACnB,EAAA,IAAIuC,YAAY,EAAE;AAChB,IAAA,IAAI,CAACmB,QAAQ,CAACnB,YAAY,CAAC;AAC5B;AACH,CAAC,CAAA;AAEMlG,qBAAA,CAAAC,OAAO,GAAG,UAAC0D,GAAW,EAAEuC,YAAuB,EAAA;AAAA,EAAA,OAAK,IAAIlG,qBAAqB,CAAC2D,GAAG,EAAEuC,YAAY,CAAC;AAAA,CAAA;;;;"}
@@ -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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"}