dinocollab-core 1.0.2 → 1.0.4

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 (101) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -487
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/dist/api-context/alert-global.js +1 -165
  4. package/dist/api-context/alert-global.js.map +1 -1
  5. package/dist/api-context/drawer-global.js +1 -111
  6. package/dist/api-context/drawer-global.js.map +1 -1
  7. package/dist/api-context/global-modal.js +1 -94
  8. package/dist/api-context/global-modal.js.map +1 -1
  9. package/dist/api-context/popover-global.js +1 -109
  10. package/dist/api-context/popover-global.js.map +1 -1
  11. package/dist/api-context/popover.js +1 -93
  12. package/dist/api-context/popover.js.map +1 -1
  13. package/dist/api-context/ui.units.js +1 -22
  14. package/dist/api-context/ui.units.js.map +1 -1
  15. package/dist/components/breadcrumbs.js +1 -64
  16. package/dist/components/breadcrumbs.js.map +1 -1
  17. package/dist/components/copy-to-clipboard.js +1 -111
  18. package/dist/components/copy-to-clipboard.js.map +1 -1
  19. package/dist/components/help-tooltip.js +1 -103
  20. package/dist/components/help-tooltip.js.map +1 -1
  21. package/dist/components/image-with-fallback.js +1 -50
  22. package/dist/components/image-with-fallback.js.map +1 -1
  23. package/dist/components/text-editor.js +1 -117
  24. package/dist/components/text-editor.js.map +1 -1
  25. package/dist/components/text-editor.preview.js +1 -26
  26. package/dist/components/text-editor.preview.js.map +1 -1
  27. package/dist/form/create.autocomplete.chips.js +1 -227
  28. package/dist/form/create.autocomplete.chips.js.map +1 -1
  29. package/dist/form/create.date-expired.js +1 -210
  30. package/dist/form/create.date-expired.js.map +1 -1
  31. package/dist/form/create.date-picker.js +1 -127
  32. package/dist/form/create.date-picker.js.map +1 -1
  33. package/dist/form/create.form-base.js +1 -140
  34. package/dist/form/create.form-base.js.map +1 -1
  35. package/dist/form/create.form-comfirm.js +1 -130
  36. package/dist/form/create.form-comfirm.js.map +1 -1
  37. package/dist/form/create.form-grid-layout.js +1 -187
  38. package/dist/form/create.form-grid-layout.js.map +1 -1
  39. package/dist/form/create.form-grid-layout.units.js +1 -41
  40. package/dist/form/create.form-grid-layout.units.js.map +1 -1
  41. package/dist/form/create.input.file.js +1 -78
  42. package/dist/form/create.input.file.js.map +1 -1
  43. package/dist/form/create.input.js +1 -275
  44. package/dist/form/create.input.js.map +1 -1
  45. package/dist/form/create.select-simple.js +1 -113
  46. package/dist/form/create.select-simple.js.map +1 -1
  47. package/dist/form/create.select-with-api.js +1 -276
  48. package/dist/form/create.select-with-api.js.map +1 -1
  49. package/dist/form/create.text-editor.js +1 -180
  50. package/dist/form/create.text-editor.js.map +1 -1
  51. package/dist/form/dino-form.js +1 -40
  52. package/dist/form/dino-form.js.map +1 -1
  53. package/dist/form/helper.js +1 -156
  54. package/dist/form/helper.js.map +1 -1
  55. package/dist/form/modal-wrapper.js +1 -81
  56. package/dist/form/modal-wrapper.js.map +1 -1
  57. package/dist/form/validator.js +1 -189
  58. package/dist/form/validator.js.map +1 -1
  59. package/dist/hooks/index.js +1 -47
  60. package/dist/hooks/index.js.map +1 -1
  61. package/dist/index.js +1 -32
  62. package/dist/index.js.map +1 -1
  63. package/dist/redux/create.hoc-lazy.js +1 -70
  64. package/dist/redux/create.hoc-lazy.js.map +1 -1
  65. package/dist/redux/dino.js +1 -10
  66. package/dist/redux/dino.js.map +1 -1
  67. package/dist/redux/types.js +1 -8
  68. package/dist/redux/types.js.map +1 -1
  69. package/dist/redux/ui.error-page.js +1 -88
  70. package/dist/redux/ui.error-page.js.map +1 -1
  71. package/dist/redux/vector-404.webp.js +1 -3
  72. package/dist/redux/vector-404.webp.js.map +1 -1
  73. package/dist/table/context.js +1 -14
  74. package/dist/table/context.js.map +1 -1
  75. package/dist/table/create.action-row.js +1 -143
  76. package/dist/table/create.action-row.js.map +1 -1
  77. package/dist/table/create.table.js +1 -245
  78. package/dist/table/create.table.js.map +1 -1
  79. package/dist/table/custom.filter-operators.js +1 -88
  80. package/dist/table/custom.filter-operators.js.map +1 -1
  81. package/dist/table/dino.js +1 -135
  82. package/dist/table/dino.js.map +1 -1
  83. package/dist/table/helpers.js +1 -114
  84. package/dist/table/helpers.js.map +1 -1
  85. package/dist/table/model-filter.js +1 -22
  86. package/dist/table/model-filter.js.map +1 -1
  87. package/dist/table/toolbar-pannel.js +1 -142
  88. package/dist/table/toolbar-pannel.js.map +1 -1
  89. package/dist/table/ui.buttons.js +1 -66
  90. package/dist/table/ui.buttons.js.map +1 -1
  91. package/dist/table/ui.units.js +1 -247
  92. package/dist/table/ui.units.js.map +1 -1
  93. package/dist/utils/dayjs-config.js +1 -11
  94. package/dist/utils/dayjs-config.js.map +1 -1
  95. package/dist/utils/helpers.js +1 -198
  96. package/dist/utils/helpers.js.map +1 -1
  97. package/dist/utils/json-object.js +1 -37
  98. package/dist/utils/json-object.js.map +1 -1
  99. package/dist/utils/query-param.js +1 -171
  100. package/dist/utils/query-param.js.map +1 -1
  101. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"create.select-simple.js","sources":["../../src/form/create.select-simple.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Collapse, FormControl, FormHelperText, InputLabel, MenuItem, Select, SelectProps } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\nexport interface ISelectSimpleOption<T extends string = string> {\r\n name: string\r\n value: T\r\n}\r\n\r\nexport interface ISelectSimpleSlots {\r\n selectProps?: Omit<SelectProps, 'variant'>\r\n}\r\n\r\nexport interface ISelectSimpleProps<T> extends Partial<IFormInputBase<T>> {\r\n options?: ISelectSimpleOption[]\r\n onChange?: (value: ISelectSimpleOption) => void\r\n slots?: ISelectSimpleSlots\r\n fullWidth?: boolean\r\n}\r\n\r\nexport interface ISelectSimpleState {\r\n value?: string\r\n}\r\n\r\nexport interface ISelectSimpleParams extends ISelectSimpleSlots {\r\n options?: ISelectSimpleOption[]\r\n}\r\n\r\nfunction CreateSelectSimple<T>(args?: ISelectSimpleParams): ComponentType<ISelectSimpleProps<T>> {\r\n class SelectSimple extends Component<ISelectSimpleProps<T>, ISelectSimpleState> {\r\n constructor(props: ISelectSimpleProps<T>) {\r\n super(props)\r\n this.state = { value: this.getDefaultValue()?.toString() }\r\n }\r\n mapProps = (): SelectProps => {\r\n const label = this.getLabel()\r\n const tfp: SelectProps = {\r\n id: this.props.name?.toString(),\r\n labelId: this.props.name?.toString() + label,\r\n name: this.props.name?.toString(),\r\n label: label,\r\n defaultValue: this.getDefaultValue(),\r\n value: this.state.value,\r\n onChange: (event) => {\r\n const value: string = event.target.value + ''\r\n this.setState({ value }, () => {\r\n if (!!this.props.name) {\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n const options = this.getOptions()\r\n const temp = options.find((x) => x.value?.toString() === value)\r\n if (!temp) return\r\n this.props.onChange && this.props.onChange(temp)\r\n })\r\n },\r\n disabled: this.props.disabled,\r\n fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true\r\n }\r\n const selectProps = this.props.slots?.selectProps ?? args?.selectProps\r\n return mergeObjects({}, tfp, selectProps)\r\n }\r\n render() {\r\n const data = this.getOptions()\r\n const label = this.getLabel()\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n return (\r\n <React.Fragment>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.getDefaultValue()} />}\r\n <FormControl fullWidth disabled={this.props.disabled} error={errorMessage.error}>\r\n <InputLabel id={this.props.name?.toString() + label}>{label}</InputLabel>\r\n <Select {...this.mapProps()}>\r\n {data.map((item) => (\r\n <MenuItem key={item.value} value={item.value}>\r\n {item.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n <Collapse in={errorMessage.error}>\r\n <FormHelperText>{errorMessage.message}</FormHelperText>\r\n </Collapse>\r\n </FormControl>\r\n </React.Fragment>\r\n )\r\n }\r\n getLabel = () => {\r\n if (!!this.props.label && typeof this.props.label === 'string') return this.props.label\r\n return this.props.name?.toString() ?? ''\r\n }\r\n getDefaultValue = () => {\r\n const { data, name } = this.props\r\n const options = this.getOptions()\r\n return this.props.defaultValue?.toString() ?? (!!data && !!name ? data[name] : undefined) ?? options[0]?.value\r\n }\r\n getOptions = (): ISelectSimpleOption[] => {\r\n return args?.options ?? this.props.options ?? []\r\n }\r\n }\r\n return SelectSimple\r\n}\r\nexport default CreateSelectSimple\r\n"],"names":["CreateSelectSimple","args","SelectSimple","_Component","props","_this$getDefaultValue","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$props$name2","_this$props$name3","_this$props$slots$sel","_this$props$slots","label","getLabel","tfp","id","name","toString","labelId","defaultValue","getDefaultValue","value","state","onChange","event","target","setState","onBlur","options","getOptions","temp","find","x","_x$value","disabled","fullWidth","undefined","selectProps","slots","mergeObjects","_this$props$name$toSt","_this$props$name4","_ref","_this$props$defaultVa","_this$props$defaultVa2","_options$","_this$props","data","_ref2","_args$options","_inherits","_createClass","key","render","_this$props$name5","_this$props$name6","errorMessage","getErrorMessage","messageErrors","_jsxs","React","Fragment","children","_jsx","hidden","FormControl","error","InputLabel","Select","_objectSpread","mapProps","map","item","MenuItem","Collapse","FormHelperText","message","Component"],"mappings":"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"}
1
+ {"version":3,"file":"create.select-simple.js","sources":["../../src/form/create.select-simple.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Collapse, FormControl, FormHelperText, InputLabel, MenuItem, Select, SelectProps } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\nexport interface ISelectSimpleOption<T extends string = string> {\r\n name: string\r\n value: T\r\n}\r\n\r\nexport interface ISelectSimpleSlots {\r\n selectProps?: Omit<SelectProps, 'variant'>\r\n}\r\n\r\nexport interface ISelectSimpleProps<T> extends Partial<IFormInputBase<T>> {\r\n options?: ISelectSimpleOption[]\r\n onChange?: (value: ISelectSimpleOption) => void\r\n slots?: ISelectSimpleSlots\r\n fullWidth?: boolean\r\n}\r\n\r\nexport interface ISelectSimpleState {\r\n value?: string\r\n}\r\n\r\nexport interface ISelectSimpleParams extends ISelectSimpleSlots {\r\n options?: ISelectSimpleOption[]\r\n}\r\n\r\nfunction CreateSelectSimple<T>(args?: ISelectSimpleParams): ComponentType<ISelectSimpleProps<T>> {\r\n class SelectSimple extends Component<ISelectSimpleProps<T>, ISelectSimpleState> {\r\n constructor(props: ISelectSimpleProps<T>) {\r\n super(props)\r\n this.state = { value: this.getDefaultValue()?.toString() }\r\n }\r\n mapProps = (): SelectProps => {\r\n const label = this.getLabel()\r\n const tfp: SelectProps = {\r\n id: this.props.name?.toString(),\r\n labelId: this.props.name?.toString() + label,\r\n name: this.props.name?.toString(),\r\n label: label,\r\n defaultValue: this.getDefaultValue(),\r\n value: this.state.value,\r\n onChange: (event) => {\r\n const value: string = event.target.value + ''\r\n this.setState({ value }, () => {\r\n if (!!this.props.name) {\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n const options = this.getOptions()\r\n const temp = options.find((x) => x.value?.toString() === value)\r\n if (!temp) return\r\n this.props.onChange && this.props.onChange(temp)\r\n })\r\n },\r\n disabled: this.props.disabled,\r\n fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true\r\n }\r\n const selectProps = this.props.slots?.selectProps ?? args?.selectProps\r\n return mergeObjects({}, tfp, selectProps)\r\n }\r\n render() {\r\n const data = this.getOptions()\r\n const label = this.getLabel()\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n return (\r\n <React.Fragment>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.getDefaultValue()} />}\r\n <FormControl fullWidth disabled={this.props.disabled} error={errorMessage.error}>\r\n <InputLabel id={this.props.name?.toString() + label}>{label}</InputLabel>\r\n <Select {...this.mapProps()}>\r\n {data.map((item) => (\r\n <MenuItem key={item.value} value={item.value}>\r\n {item.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n <Collapse in={errorMessage.error}>\r\n <FormHelperText>{errorMessage.message}</FormHelperText>\r\n </Collapse>\r\n </FormControl>\r\n </React.Fragment>\r\n )\r\n }\r\n getLabel = () => {\r\n if (!!this.props.label && typeof this.props.label === 'string') return this.props.label\r\n return this.props.name?.toString() ?? ''\r\n }\r\n getDefaultValue = () => {\r\n const { data, name } = this.props\r\n const options = this.getOptions()\r\n return this.props.defaultValue?.toString() ?? (!!data && !!name ? data[name] : undefined) ?? options[0]?.value\r\n }\r\n getOptions = (): ISelectSimpleOption[] => {\r\n return args?.options ?? this.props.options ?? []\r\n }\r\n }\r\n return SelectSimple\r\n}\r\nexport default CreateSelectSimple\r\n"],"names":["CreateSelectSimple","args","SelectSimple","props","_this$getDefaultValue","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$props$name2","_this$props$name3","_this$props$slots$sel","_this$props$slots","label","getLabel","tfp","id","name","toString","labelId","defaultValue","getDefaultValue","value","state","onChange","event","target","setState","onBlur","temp","getOptions","find","x","_x$value","disabled","fullWidth","undefined","selectProps","slots","mergeObjects","_this$props$name$toSt","_this$props$name4","_ref","_this$props$defaultVa","_this$props$defaultVa2","_options$","_this$props","data","options","_ref2","_args$options","_inherits","Component","_createClass","key","_this$props$name5","_this$props$name6","this","errorMessage","getErrorMessage","messageErrors","_jsxs","React","Fragment","children","_jsx","hidden","FormControl","error","InputLabel","Select","_objectSpread","mapProps","map","item","MenuItem","Collapse","in","FormHelperText","message"],"mappings":"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"}
@@ -1,277 +1,2 @@
1
- import { inherits as _inherits, createClass as _createClass, objectSpread2 as _objectSpread2, classCallCheck as _classCallCheck, callSuper as _callSuper, defineProperty as _defineProperty, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
- import { Component } from 'react';
4
- import { Autocomplete, TextField } from '@mui/material';
5
- import { getErrorMessage } from './helper.js';
6
- import { ApiAlertContext } from '../api-context/alert-global.js';
7
- import '../api-context/drawer-global.js';
8
- import '../api-context/global-modal.js';
9
-
10
- var CreateSelectWithApi = function CreateSelectWithApi(params) {
11
- var SelectWithApi = /*#__PURE__*/function (_Component) {
12
- function SelectWithApi(props) {
13
- var _props$existedIds;
14
- var _this;
15
- _classCallCheck(this, SelectWithApi);
16
- _this = _callSuper(this, SelectWithApi, [props]);
17
- _defineProperty(_this, "abortController", {
18
- signalController: new AbortController()
19
- });
20
- _defineProperty(_this, "refInput", null);
21
- _defineProperty(_this, "existedIds", []);
22
- _defineProperty(_this, "getFetchDataFunc", function () {
23
- var _ref, _this$props$fetchData;
24
- return (_ref = (_this$props$fetchData = _this.props.fetchData) !== null && _this$props$fetchData !== void 0 ? _this$props$fetchData : params === null || params === void 0 ? void 0 : params.fetchData) !== null && _ref !== void 0 ? _ref : function () {
25
- return Promise.resolve([]);
26
- };
27
- });
28
- _defineProperty(_this, "timer", {
29
- _timer: 0,
30
- _second: 500,
31
- callback: function () {
32
- var _callback = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(value) {
33
- var res, options, _ApiAlertContext$ApiA;
34
- return _regeneratorRuntime().wrap(function _callee$(_context) {
35
- while (1) switch (_context.prev = _context.next) {
36
- case 0:
37
- _context.prev = 0;
38
- _this.abortController.signalController = new AbortController();
39
- _context.next = 4;
40
- return _this.getFetchDataFunc()(value, _this.abortController.signalController.signal);
41
- case 4:
42
- res = _context.sent;
43
- options = _this.getOptionsFilter(res, _this.existedIds);
44
- _this.setState({
45
- options: options
46
- });
47
- _context.next = 12;
48
- break;
49
- case 9:
50
- _context.prev = 9;
51
- _context.t0 = _context["catch"](0);
52
- // console.log(error)
53
- (_ApiAlertContext$ApiA = ApiAlertContext.ApiAlert) === null || _ApiAlertContext$ApiA === void 0 || _ApiAlertContext$ApiA.PushError('Error from server!');
54
- case 12:
55
- _context.prev = 12;
56
- _this.setState({
57
- statusText: 'no items'
58
- });
59
- return _context.finish(12);
60
- case 15:
61
- case "end":
62
- return _context.stop();
63
- }
64
- }, _callee, null, [[0, 9, 12, 15]]);
65
- }));
66
- function callback(_x) {
67
- return _callback.apply(this, arguments);
68
- }
69
- return callback;
70
- }(),
71
- start: function start(text) {
72
- _this.timer.clear();
73
- _this.timer._timer = window.setTimeout(function () {
74
- return _this.timer.callback(text);
75
- }, _this.timer._second);
76
- },
77
- clear: function clear() {
78
- _this.abortController.signalController.abort();
79
- clearTimeout(_this.timer._timer);
80
- }
81
- });
82
- _defineProperty(_this, "fetchData", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
83
- var _options$find, defaultValue, res, options, optionSelected, _ApiAlertContext$ApiA2;
84
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
85
- while (1) switch (_context2.prev = _context2.next) {
86
- case 0:
87
- _context2.prev = 0;
88
- defaultValue = _this.getDefaultValue();
89
- _context2.next = 4;
90
- return _this.getFetchDataFunc()(defaultValue, _this.abortController.signalController.signal);
91
- case 4:
92
- res = _context2.sent;
93
- if (Array.isArray(res)) {
94
- _context2.next = 7;
95
- break;
96
- }
97
- return _context2.abrupt("return");
98
- case 7:
99
- options = _this.getOptionsFilter(res, _this.existedIds);
100
- optionSelected = (_options$find = options.find(function (x) {
101
- return x.Id === defaultValue;
102
- })) !== null && _options$find !== void 0 ? _options$find : null;
103
- _this.setState({
104
- options: options,
105
- optionSelected: optionSelected,
106
- loading: false
107
- });
108
- return _context2.abrupt("return");
109
- case 13:
110
- _context2.prev = 13;
111
- _context2.t0 = _context2["catch"](0);
112
- // console.log(error)
113
- (_ApiAlertContext$ApiA2 = ApiAlertContext.ApiAlert) === null || _ApiAlertContext$ApiA2 === void 0 || _ApiAlertContext$ApiA2.PushError('Error from server!');
114
- case 16:
115
- _context2.prev = 16;
116
- _this.setState({
117
- statusText: 'no items',
118
- loading: false
119
- });
120
- return _context2.finish(16);
121
- case 19:
122
- case "end":
123
- return _context2.stop();
124
- }
125
- }, _callee2, null, [[0, 13, 16, 19]]);
126
- })));
127
- _defineProperty(_this, "handleChange", function (_, value) {
128
- var _value$Id;
129
- _this.setState({
130
- optionSelected: value
131
- });
132
- if (_this.refInput) _this.refInput.value = (_value$Id = value === null || value === void 0 ? void 0 : value.Id) !== null && _value$Id !== void 0 ? _value$Id : '';
133
- _this.props.onChange && _this.props.onChange(value);
134
- });
135
- _defineProperty(_this, "handleInputChange", function (_, value) {
136
- var _this$state$optionSel;
137
- var state = {
138
- inputValue: value
139
- };
140
- if (value === ((_this$state$optionSel = _this.state.optionSelected) === null || _this$state$optionSel === void 0 ? void 0 : _this$state$optionSel.Name)) {
141
- _this.setState(state);
142
- return;
143
- }
144
- var valueFormated = value.trim().toLowerCase();
145
- var selectedIndex = _this.state.options.findIndex(function (x) {
146
- var _x$Name;
147
- return (_x$Name = x.Name) === null || _x$Name === void 0 ? void 0 : _x$Name.trim().toLowerCase().includes(valueFormated);
148
- });
149
- if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...';
150
- _this.setState(state, function () {
151
- if (selectedIndex < 0 || valueFormated === '') _this.timer.start(valueFormated);
152
- });
153
- });
154
- _defineProperty(_this, "fillterOptions", function (options, state) {
155
- return options.filter(function (x) {
156
- var _x$Name2;
157
- var value = state.inputValue.toLowerCase();
158
- return x.Id.toLowerCase().includes(value) || ((_x$Name2 = x.Name) === null || _x$Name2 === void 0 ? void 0 : _x$Name2.toLowerCase().includes(value));
159
- });
160
- });
161
- _defineProperty(_this, "getLabel", function () {
162
- var _this$props$label, _this$props$name;
163
- return (_this$props$label = _this.props.label) !== null && _this$props$label !== void 0 ? _this$props$label : (_this$props$name = _this.props.name) === null || _this$props$name === void 0 ? void 0 : _this$props$name.toString();
164
- });
165
- _defineProperty(_this, "getDefaultValue", function () {
166
- var _ref3, _this$props$defaultVa, _this$props$data;
167
- if (!_this.props.name) return;
168
- return (_ref3 = (_this$props$defaultVa = _this.props.defaultValue) !== null && _this$props$defaultVa !== void 0 ? _this$props$defaultVa : (_this$props$data = _this.props.data) === null || _this$props$data === void 0 ? void 0 : _this$props$data[_this.props.name]) === null || _ref3 === void 0 ? void 0 : _ref3.toString();
169
- });
170
- _this.state = {
171
- options: [],
172
- statusText: 'no items',
173
- optionSelected: null,
174
- inputValue: '',
175
- loading: true
176
- };
177
- _this.existedIds = (_props$existedIds = props.existedIds) !== null && _props$existedIds !== void 0 ? _props$existedIds : [];
178
- return _this;
179
- }
180
- _inherits(SelectWithApi, _Component);
181
- return _createClass(SelectWithApi, [{
182
- key: "render",
183
- value: function render() {
184
- var _this2 = this,
185
- _this$props$name2,
186
- _this$state$optionSel2,
187
- _this$props$name3,
188
- _this$state$optionSel3;
189
- var defaultValue = this.getDefaultValue();
190
- var eMessage = getErrorMessage(this.props.messageErrors, this.props.name);
191
- return jsxs(Fragment, {
192
- children: [jsx(Autocomplete, {
193
- disabled: this.state.loading || this.props.disabled,
194
- fullWidth: true,
195
- noOptionsText: this.state.statusText,
196
- options: this.state.options,
197
- getOptionLabel: function getOptionLabel(x) {
198
- var _x$Name3;
199
- return (_x$Name3 = x.Name) !== null && _x$Name3 !== void 0 ? _x$Name3 : x.Id;
200
- },
201
- getOptionKey: function getOptionKey(x) {
202
- return JSON.stringify(x);
203
- },
204
- isOptionEqualToValue: function isOptionEqualToValue(o, v) {
205
- return o.Id.toString() === v.Id.toString() && o.Name === v.Name;
206
- },
207
- filterOptions: this.fillterOptions,
208
- // select
209
- value: this.state.optionSelected,
210
- onChange: this.handleChange,
211
- // input
212
- inputValue: this.state.inputValue,
213
- onInputChange: this.handleInputChange,
214
- renderInput: function renderInput(params) {
215
- var _this2$props$slots;
216
- return jsx(TextField, _objectSpread2(_objectSpread2({}, params), {}, {
217
- label: _this2.getLabel(),
218
- error: eMessage.error,
219
- helperText: eMessage.message,
220
- onBlur: function onBlur() {
221
- if (!_this2.props.name) return;
222
- _this2.props.onBlur && _this2.props.onBlur(_this2.props.name);
223
- }
224
- }, (_this2$props$slots = _this2.props.slots) === null || _this2$props$slots === void 0 ? void 0 : _this2$props$slots.textFieldProps));
225
- }
226
- }), jsx("input", {
227
- ref: function ref(_ref4) {
228
- return _this2.refInput = _ref4;
229
- },
230
- hidden: true,
231
- name: (_this$props$name2 = this.props.name) === null || _this$props$name2 === void 0 ? void 0 : _this$props$name2.toString(),
232
- defaultValue: defaultValue
233
- }), ((_this$state$optionSel2 = this.state.optionSelected) === null || _this$state$optionSel2 === void 0 ? void 0 : _this$state$optionSel2.Other) && jsx("input", {
234
- hidden: true,
235
- name: "".concat((_this$props$name3 = this.props.name) === null || _this$props$name3 === void 0 ? void 0 : _this$props$name3.toString(), "Other"),
236
- defaultValue: JSON.stringify(this.state.optionSelected.Other)
237
- }, (_this$state$optionSel3 = this.state.optionSelected.Id) !== null && _this$state$optionSel3 !== void 0 ? _this$state$optionSel3 : 'key')]
238
- });
239
- }
240
- }, {
241
- key: "componentDidMount",
242
- value: function componentDidMount() {
243
- this.fetchData();
244
- }
245
- }, {
246
- key: "componentWillUnmount",
247
- value: function componentWillUnmount() {
248
- this.timer.clear();
249
- }
250
- }, {
251
- key: "componentDidUpdate",
252
- value: function componentDidUpdate(prevProps) {
253
- if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {
254
- var _this$props$existedId;
255
- this.existedIds = (_this$props$existedId = this.props.existedIds) !== null && _this$props$existedId !== void 0 ? _this$props$existedId : [];
256
- }
257
- }
258
- }, {
259
- key: "getOptionsFilter",
260
- value: function getOptionsFilter(options) {
261
- var existedId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
262
- var ids = new Set(existedId);
263
- return options.reduce(function (a, b) {
264
- if (!ids.has(b.Id)) {
265
- a.push(b);
266
- ids.add(b.Id);
267
- }
268
- return a;
269
- }, []);
270
- }
271
- }]);
272
- }(Component);
273
- return SelectWithApi;
274
- };
275
-
276
- export { CreateSelectWithApi as default };
1
+ import{inherits as t,createClass as e,objectSpread2 as n,classCallCheck as r,callSuper as o,defineProperty as i,asyncToGenerator as a,regeneratorRuntime as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as s,Fragment as u,jsx as p}from"react/jsx-runtime";import{Component as d}from"react";import{Autocomplete as c,TextField as f}from"@mui/material";import{getErrorMessage as v}from"./helper.js";import{ApiAlertContext as h}from"../api-context/alert-global.js";import"../api-context/drawer-global.js";import"../api-context/global-modal.js";var m=function(m){var g=function(){function g(t){var e,n,s;return r(this,g),n=o(this,g,[t]),i(n,"abortController",{signalController:new AbortController}),i(n,"refInput",null),i(n,"existedIds",[]),i(n,"getFetchDataFunc",(function(){var t,e;return null!==(t=null!==(e=n.props.fetchData)&&void 0!==e?e:null==m?void 0:m.fetchData)&&void 0!==t?t:function(){return Promise.resolve([])}})),i(n,"timer",{_timer:0,_second:500,callback:(s=a(l().mark((function t(e){var r,o,i;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n.abortController.signalController=new AbortController,t.next=4,n.getFetchDataFunc()(e,n.abortController.signalController.signal);case 4:r=t.sent,o=n.getOptionsFilter(r,n.existedIds),n.setState({options:o}),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),null===(i=h.ApiAlert)||void 0===i||i.PushError("Error from server!");case 12:return t.prev=12,n.setState({statusText:"no items"}),t.finish(12);case 15:case"end":return t.stop()}}),t,null,[[0,9,12,15]])}))),function(t){return s.apply(this,arguments)}),start:function(t){n.timer.clear(),n.timer._timer=window.setTimeout((function(){return n.timer.callback(t)}),n.timer._second)},clear:function(){n.abortController.signalController.abort(),clearTimeout(n.timer._timer)}}),i(n,"fetchData",a(l().mark((function t(){var e,r,o,i,a,s;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=n.getDefaultValue(),t.next=4,n.getFetchDataFunc()(r,n.abortController.signalController.signal);case 4:if(o=t.sent,Array.isArray(o)){t.next=7;break}return t.abrupt("return");case 7:return i=n.getOptionsFilter(o,n.existedIds),a=null!==(e=i.find((function(t){return t.Id===r})))&&void 0!==e?e:null,n.setState({options:i,optionSelected:a,loading:!1}),t.abrupt("return");case 13:t.prev=13,t.t0=t.catch(0),null===(s=h.ApiAlert)||void 0===s||s.PushError("Error from server!");case 16:return t.prev=16,n.setState({statusText:"no items",loading:!1}),t.finish(16);case 19:case"end":return t.stop()}}),t,null,[[0,13,16,19]])})))),i(n,"handleChange",(function(t,e){var r;n.setState({optionSelected:e}),n.refInput&&(n.refInput.value=null!==(r=null==e?void 0:e.Id)&&void 0!==r?r:""),n.props.onChange&&n.props.onChange(e)})),i(n,"handleInputChange",(function(t,e){var r,o={inputValue:e};if(e!==(null===(r=n.state.optionSelected)||void 0===r?void 0:r.Name)){var i=e.trim().toLowerCase(),a=n.state.options.findIndex((function(t){var e;return null===(e=t.Name)||void 0===e?void 0:e.trim().toLowerCase().includes(i)}));(a<0||""===i)&&(o.statusText="loading..."),n.setState(o,(function(){(a<0||""===i)&&n.timer.start(i)}))}else n.setState(o)})),i(n,"fillterOptions",(function(t,e){return t.filter((function(t){var n,r=e.inputValue.toLowerCase();return t.Id.toLowerCase().includes(r)||(null===(n=t.Name)||void 0===n?void 0:n.toLowerCase().includes(r))}))})),i(n,"getLabel",(function(){var t,e;return null!==(t=n.props.label)&&void 0!==t?t:null===(e=n.props.name)||void 0===e?void 0:e.toString()})),i(n,"getDefaultValue",(function(){var t,e,r;if(n.props.name)return null===(t=null!==(e=n.props.defaultValue)&&void 0!==e?e:null===(r=n.props.data)||void 0===r?void 0:r[n.props.name])||void 0===t?void 0:t.toString()})),n.state={options:[],statusText:"no items",optionSelected:null,inputValue:"",loading:!0},n.existedIds=null!==(e=t.existedIds)&&void 0!==e?e:[],n}return t(g,d),e(g,[{key:"render",value:function(){var t,e,r,o,i=this,a=this.getDefaultValue(),l=v(this.props.messageErrors,this.props.name);return s(u,{children:[p(c,{disabled:this.state.loading||this.props.disabled,fullWidth:!0,noOptionsText:this.state.statusText,options:this.state.options,getOptionLabel:function(t){var e;return null!==(e=t.Name)&&void 0!==e?e:t.Id},getOptionKey:function(t){return JSON.stringify(t)},isOptionEqualToValue:function(t,e){return t.Id.toString()===e.Id.toString()&&t.Name===e.Name},filterOptions:this.fillterOptions,value:this.state.optionSelected,onChange:this.handleChange,inputValue:this.state.inputValue,onInputChange:this.handleInputChange,renderInput:function(t){var e;return p(f,n(n({},t),{},{label:i.getLabel(),error:l.error,helperText:l.message,onBlur:function(){i.props.name&&i.props.onBlur&&i.props.onBlur(i.props.name)}},null===(e=i.props.slots)||void 0===e?void 0:e.textFieldProps))}}),p("input",{ref:function(t){return i.refInput=t},hidden:!0,name:null===(t=this.props.name)||void 0===t?void 0:t.toString(),defaultValue:a}),(null===(e=this.state.optionSelected)||void 0===e?void 0:e.Other)&&p("input",{hidden:!0,name:"".concat(null===(r=this.props.name)||void 0===r?void 0:r.toString(),"Other"),defaultValue:JSON.stringify(this.state.optionSelected.Other)},null!==(o=this.state.optionSelected.Id)&&void 0!==o?o:"key")]})}},{key:"componentDidMount",value:function(){this.fetchData()}},{key:"componentWillUnmount",value:function(){this.timer.clear()}},{key:"componentDidUpdate",value:function(t){var e;JSON.stringify(t.existedIds)!==JSON.stringify(this.props.existedIds)&&(this.existedIds=null!==(e=this.props.existedIds)&&void 0!==e?e:[])}},{key:"getOptionsFilter",value:function(t){var e=new Set(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]);return t.reduce((function(t,n){return e.has(n.Id)||(t.push(n),e.add(n.Id)),t}),[])}}])}();return g};export{m as default};
277
2
  //# sourceMappingURL=create.select-with-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.select-with-api.js","sources":["../../src/form/create.select-with-api.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Autocomplete, FilterOptionsState, TextField, TextFieldProps } from '@mui/material'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { ApiAlertContext } from '../api-context'\r\n\r\nexport interface ISelectWithApiOption<TOther = any> {\r\n Id: string\r\n Name?: string\r\n Other?: TOther\r\n}\r\n\r\nexport interface ISelectWithApiPropsSlots {\r\n textFieldProps: TextFieldProps\r\n}\r\n\r\nexport type ISelectWithApiFetchData<O extends ISelectWithApiOption> = (value?: string, signal?: AbortSignal) => Promise<O[]>\r\n\r\nexport interface ISelectWithApiProps<T, O extends ISelectWithApiOption> extends IFormInputBase<T>, ISelectWithApiParams<O> {\r\n onChange?: (value: O | null) => void\r\n existedIds?: string[]\r\n slots?: ISelectWithApiPropsSlots\r\n}\r\n\r\nexport interface ISelectWithApiState<O extends ISelectWithApiOption> {\r\n options: O[]\r\n statusText?: string\r\n optionSelected: O | null\r\n inputValue: string\r\n loading?: boolean\r\n}\r\n\r\nexport interface ISelectWithApiParams<O extends ISelectWithApiOption> {\r\n fetchData?: ISelectWithApiFetchData<O>\r\n}\r\n\r\nconst CreateSelectWithApi = function <T, O extends ISelectWithApiOption = ISelectWithApiOption>(\r\n params?: ISelectWithApiParams<O>\r\n): ComponentType<ISelectWithApiProps<T, O>> {\r\n class SelectWithApi extends Component<ISelectWithApiProps<T, O>, ISelectWithApiState<O>> {\r\n abortController = { signalController: new AbortController() }\r\n refInput: HTMLInputElement | null = null\r\n existedIds: string[] = []\r\n constructor(props: ISelectWithApiProps<T, O>) {\r\n super(props)\r\n this.state = {\r\n options: [],\r\n statusText: 'no items',\r\n optionSelected: null,\r\n inputValue: '',\r\n loading: true\r\n }\r\n this.existedIds = props.existedIds ?? []\r\n }\r\n\r\n render() {\r\n const defaultValue = this.getDefaultValue()\r\n const eMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n return (\r\n <>\r\n <Autocomplete\r\n disabled={this.state.loading || this.props.disabled}\r\n fullWidth\r\n noOptionsText={this.state.statusText}\r\n options={this.state.options}\r\n getOptionLabel={(x) => x.Name ?? x.Id}\r\n getOptionKey={(x) => JSON.stringify(x)}\r\n isOptionEqualToValue={(o, v) => o.Id.toString() === v.Id.toString() && o.Name === v.Name}\r\n filterOptions={this.fillterOptions}\r\n // select\r\n value={this.state.optionSelected}\r\n onChange={this.handleChange}\r\n // input\r\n inputValue={this.state.inputValue}\r\n onInputChange={this.handleInputChange}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n label={this.getLabel()}\r\n error={eMessage.error}\r\n helperText={eMessage.message}\r\n onBlur={() => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }}\r\n {...this.props.slots?.textFieldProps}\r\n />\r\n )}\r\n />\r\n <input ref={(ref) => (this.refInput = ref)} hidden name={this.props.name?.toString()} defaultValue={defaultValue} />\r\n {this.state.optionSelected?.Other && (\r\n <input\r\n hidden\r\n name={`${this.props.name?.toString()}Other`}\r\n key={this.state.optionSelected.Id ?? 'key'}\r\n defaultValue={JSON.stringify(this.state.optionSelected.Other)}\r\n />\r\n )}\r\n </>\r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchData()\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.timer.clear()\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ISelectWithApiProps<T, O>>): void {\r\n if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {\r\n this.existedIds = this.props.existedIds ?? []\r\n }\r\n }\r\n\r\n getFetchDataFunc = (): ISelectWithApiFetchData<O> => {\r\n return this.props.fetchData ?? params?.fetchData ?? (() => Promise.resolve([]))\r\n }\r\n\r\n timer = {\r\n _timer: 0,\r\n _second: 500,\r\n callback: async (value: string) => {\r\n try {\r\n this.abortController.signalController = new AbortController()\r\n const res = await this.getFetchDataFunc()(value, this.abortController.signalController.signal)\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n this.setState({ options })\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items' })\r\n }\r\n },\r\n start: (text: string) => {\r\n this.timer.clear()\r\n this.timer._timer = window.setTimeout(() => this.timer.callback(text), this.timer._second)\r\n },\r\n clear: () => {\r\n this.abortController.signalController.abort()\r\n clearTimeout(this.timer._timer)\r\n }\r\n }\r\n\r\n fetchData = async () => {\r\n try {\r\n const defaultValue = this.getDefaultValue()\r\n const res = await this.getFetchDataFunc()(defaultValue, this.abortController.signalController.signal)\r\n if (!Array.isArray(res)) return\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n const optionSelected = options.find((x) => x.Id === defaultValue) ?? null\r\n this.setState({ options, optionSelected, loading: false })\r\n return\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items', loading: false })\r\n }\r\n }\r\n\r\n handleChange = (_: React.SyntheticEvent, value: O | null) => {\r\n this.setState({ optionSelected: value })\r\n if (this.refInput) this.refInput.value = value?.Id ?? ''\r\n this.props.onChange && this.props.onChange(value)\r\n }\r\n\r\n handleInputChange = (_: React.SyntheticEvent, value: string) => {\r\n const state: Pick<ISelectWithApiState<O>, 'inputValue' | 'statusText' | 'loading'> = { inputValue: value }\r\n if (value === this.state.optionSelected?.Name) {\r\n this.setState(state)\r\n return\r\n }\r\n const valueFormated = value.trim().toLowerCase()\r\n const selectedIndex = this.state.options.findIndex((x) => {\r\n return x.Name?.trim().toLowerCase().includes(valueFormated)\r\n })\r\n if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...'\r\n this.setState(state, () => {\r\n if (selectedIndex < 0 || valueFormated === '') this.timer.start(valueFormated)\r\n })\r\n }\r\n\r\n fillterOptions = (options: O[], state: FilterOptionsState<O>) => {\r\n return options.filter((x) => {\r\n const value = state.inputValue.toLowerCase()\r\n return x.Id.toLowerCase().includes(value) || x.Name?.toLowerCase().includes(value)\r\n })\r\n }\r\n\r\n getLabel = () => {\r\n return this.props.label ?? this.props.name?.toString()\r\n }\r\n\r\n getDefaultValue = () => {\r\n if (!this.props.name) return\r\n return (this.props.defaultValue ?? this.props.data?.[this.props.name])?.toString()\r\n }\r\n\r\n getOptionsFilter<O extends ISelectWithApiOption = ISelectWithApiOption>(options: O[], existedId: string[] = []): O[] {\r\n const ids = new Set<string | number>(existedId)\r\n return options.reduce<O[]>((a, b) => {\r\n if (!ids.has(b.Id)) {\r\n a.push(b)\r\n ids.add(b.Id)\r\n }\r\n return a\r\n }, [])\r\n }\r\n }\r\n return SelectWithApi\r\n}\r\nexport default CreateSelectWithApi\r\n"],"names":["CreateSelectWithApi","params","SelectWithApi","_Component","props","_props$existedIds","_this","_classCallCheck","_callSuper","_defineProperty","signalController","AbortController","_ref","_this$props$fetchData","fetchData","Promise","resolve","_timer","_second","callback","_callback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","res","options","_ApiAlertContext$ApiA","wrap","_callee$","_context","prev","next","abortController","getFetchDataFunc","signal","sent","getOptionsFilter","existedIds","setState","t0","ApiAlertContext","ApiAlert","PushError","statusText","finish","stop","_x","apply","arguments","start","text","timer","clear","window","setTimeout","abort","clearTimeout","_callee2","_options$find","defaultValue","optionSelected","_ApiAlertContext$ApiA2","_callee2$","_context2","getDefaultValue","Array","isArray","abrupt","find","x","Id","loading","_","_value$Id","refInput","onChange","_this$state$optionSel","state","inputValue","Name","valueFormated","trim","toLowerCase","selectedIndex","findIndex","_x$Name","includes","filter","_x$Name2","_this$props$label","_this$props$name","label","name","toString","_ref3","_this$props$defaultVa","_this$props$data","data","_inherits","_createClass","key","render","_this2","_this$props$name2","_this$state$optionSel2","_this$props$name3","_this$state$optionSel3","eMessage","getErrorMessage","messageErrors","_jsxs","_jsx","Autocomplete","disabled","fullWidth","noOptionsText","getOptionLabel","_x$Name3","getOptionKey","JSON","stringify","isOptionEqualToValue","o","v","filterOptions","fillterOptions","handleChange","onInputChange","handleInputChange","renderInput","_this2$props$slots","TextField","_objectSpread","getLabel","error","helperText","message","onBlur","slots","textFieldProps","ref","hidden","Other","concat","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","_this$props$existedId","existedId","length","undefined","ids","Set","reduce","a","b","has","push","add","Component"],"mappings":"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"}
1
+ {"version":3,"file":"create.select-with-api.js","sources":["../../src/form/create.select-with-api.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Autocomplete, FilterOptionsState, TextField, TextFieldProps } from '@mui/material'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { ApiAlertContext } from '../api-context'\r\n\r\nexport interface ISelectWithApiOption<TOther = any> {\r\n Id: string\r\n Name?: string\r\n Other?: TOther\r\n}\r\n\r\nexport interface ISelectWithApiPropsSlots {\r\n textFieldProps: TextFieldProps\r\n}\r\n\r\nexport type ISelectWithApiFetchData<O extends ISelectWithApiOption> = (value?: string, signal?: AbortSignal) => Promise<O[]>\r\n\r\nexport interface ISelectWithApiProps<T, O extends ISelectWithApiOption> extends IFormInputBase<T>, ISelectWithApiParams<O> {\r\n onChange?: (value: O | null) => void\r\n existedIds?: string[]\r\n slots?: ISelectWithApiPropsSlots\r\n}\r\n\r\nexport interface ISelectWithApiState<O extends ISelectWithApiOption> {\r\n options: O[]\r\n statusText?: string\r\n optionSelected: O | null\r\n inputValue: string\r\n loading?: boolean\r\n}\r\n\r\nexport interface ISelectWithApiParams<O extends ISelectWithApiOption> {\r\n fetchData?: ISelectWithApiFetchData<O>\r\n}\r\n\r\nconst CreateSelectWithApi = function <T, O extends ISelectWithApiOption = ISelectWithApiOption>(\r\n params?: ISelectWithApiParams<O>\r\n): ComponentType<ISelectWithApiProps<T, O>> {\r\n class SelectWithApi extends Component<ISelectWithApiProps<T, O>, ISelectWithApiState<O>> {\r\n abortController = { signalController: new AbortController() }\r\n refInput: HTMLInputElement | null = null\r\n existedIds: string[] = []\r\n constructor(props: ISelectWithApiProps<T, O>) {\r\n super(props)\r\n this.state = {\r\n options: [],\r\n statusText: 'no items',\r\n optionSelected: null,\r\n inputValue: '',\r\n loading: true\r\n }\r\n this.existedIds = props.existedIds ?? []\r\n }\r\n\r\n render() {\r\n const defaultValue = this.getDefaultValue()\r\n const eMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n return (\r\n <>\r\n <Autocomplete\r\n disabled={this.state.loading || this.props.disabled}\r\n fullWidth\r\n noOptionsText={this.state.statusText}\r\n options={this.state.options}\r\n getOptionLabel={(x) => x.Name ?? x.Id}\r\n getOptionKey={(x) => JSON.stringify(x)}\r\n isOptionEqualToValue={(o, v) => o.Id.toString() === v.Id.toString() && o.Name === v.Name}\r\n filterOptions={this.fillterOptions}\r\n // select\r\n value={this.state.optionSelected}\r\n onChange={this.handleChange}\r\n // input\r\n inputValue={this.state.inputValue}\r\n onInputChange={this.handleInputChange}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n label={this.getLabel()}\r\n error={eMessage.error}\r\n helperText={eMessage.message}\r\n onBlur={() => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }}\r\n {...this.props.slots?.textFieldProps}\r\n />\r\n )}\r\n />\r\n <input ref={(ref) => (this.refInput = ref)} hidden name={this.props.name?.toString()} defaultValue={defaultValue} />\r\n {this.state.optionSelected?.Other && (\r\n <input\r\n hidden\r\n name={`${this.props.name?.toString()}Other`}\r\n key={this.state.optionSelected.Id ?? 'key'}\r\n defaultValue={JSON.stringify(this.state.optionSelected.Other)}\r\n />\r\n )}\r\n </>\r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchData()\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.timer.clear()\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ISelectWithApiProps<T, O>>): void {\r\n if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {\r\n this.existedIds = this.props.existedIds ?? []\r\n }\r\n }\r\n\r\n getFetchDataFunc = (): ISelectWithApiFetchData<O> => {\r\n return this.props.fetchData ?? params?.fetchData ?? (() => Promise.resolve([]))\r\n }\r\n\r\n timer = {\r\n _timer: 0,\r\n _second: 500,\r\n callback: async (value: string) => {\r\n try {\r\n this.abortController.signalController = new AbortController()\r\n const res = await this.getFetchDataFunc()(value, this.abortController.signalController.signal)\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n this.setState({ options })\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items' })\r\n }\r\n },\r\n start: (text: string) => {\r\n this.timer.clear()\r\n this.timer._timer = window.setTimeout(() => this.timer.callback(text), this.timer._second)\r\n },\r\n clear: () => {\r\n this.abortController.signalController.abort()\r\n clearTimeout(this.timer._timer)\r\n }\r\n }\r\n\r\n fetchData = async () => {\r\n try {\r\n const defaultValue = this.getDefaultValue()\r\n const res = await this.getFetchDataFunc()(defaultValue, this.abortController.signalController.signal)\r\n if (!Array.isArray(res)) return\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n const optionSelected = options.find((x) => x.Id === defaultValue) ?? null\r\n this.setState({ options, optionSelected, loading: false })\r\n return\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items', loading: false })\r\n }\r\n }\r\n\r\n handleChange = (_: React.SyntheticEvent, value: O | null) => {\r\n this.setState({ optionSelected: value })\r\n if (this.refInput) this.refInput.value = value?.Id ?? ''\r\n this.props.onChange && this.props.onChange(value)\r\n }\r\n\r\n handleInputChange = (_: React.SyntheticEvent, value: string) => {\r\n const state: Pick<ISelectWithApiState<O>, 'inputValue' | 'statusText' | 'loading'> = { inputValue: value }\r\n if (value === this.state.optionSelected?.Name) {\r\n this.setState(state)\r\n return\r\n }\r\n const valueFormated = value.trim().toLowerCase()\r\n const selectedIndex = this.state.options.findIndex((x) => {\r\n return x.Name?.trim().toLowerCase().includes(valueFormated)\r\n })\r\n if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...'\r\n this.setState(state, () => {\r\n if (selectedIndex < 0 || valueFormated === '') this.timer.start(valueFormated)\r\n })\r\n }\r\n\r\n fillterOptions = (options: O[], state: FilterOptionsState<O>) => {\r\n return options.filter((x) => {\r\n const value = state.inputValue.toLowerCase()\r\n return x.Id.toLowerCase().includes(value) || x.Name?.toLowerCase().includes(value)\r\n })\r\n }\r\n\r\n getLabel = () => {\r\n return this.props.label ?? this.props.name?.toString()\r\n }\r\n\r\n getDefaultValue = () => {\r\n if (!this.props.name) return\r\n return (this.props.defaultValue ?? this.props.data?.[this.props.name])?.toString()\r\n }\r\n\r\n getOptionsFilter<O extends ISelectWithApiOption = ISelectWithApiOption>(options: O[], existedId: string[] = []): O[] {\r\n const ids = new Set<string | number>(existedId)\r\n return options.reduce<O[]>((a, b) => {\r\n if (!ids.has(b.Id)) {\r\n a.push(b)\r\n ids.add(b.Id)\r\n }\r\n return a\r\n }, [])\r\n }\r\n }\r\n return SelectWithApi\r\n}\r\nexport default CreateSelectWithApi\r\n"],"names":["CreateSelectWithApi","params","SelectWithApi","props","_props$existedIds","_this","_callback","_classCallCheck","_callSuper","_defineProperty","signalController","AbortController","_ref","_this$props$fetchData","fetchData","Promise","resolve","_timer","_second","callback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","res","options","_ApiAlertContext$ApiA","wrap","_context","prev","next","abortController","getFetchDataFunc","signal","sent","getOptionsFilter","existedIds","setState","t0","ApiAlertContext","ApiAlert","PushError","statusText","finish","stop","_x","apply","this","arguments","start","text","timer","clear","window","setTimeout","abort","clearTimeout","_callee2","_options$find","defaultValue","optionSelected","_ApiAlertContext$ApiA2","_context2","getDefaultValue","Array","isArray","abrupt","find","x","Id","loading","_","_value$Id","refInput","onChange","_this$state$optionSel","state","inputValue","Name","valueFormated","trim","toLowerCase","selectedIndex","findIndex","_x$Name","includes","filter","_x$Name2","_this$props$label","_this$props$name","label","name","toString","_ref3","_this$props$defaultVa","_this$props$data","data","_inherits","Component","_createClass","key","_this$props$name2","_this$state$optionSel2","_this$props$name3","_this$state$optionSel3","_this2","eMessage","getErrorMessage","messageErrors","_jsxs","_jsx","Autocomplete","disabled","fullWidth","noOptionsText","getOptionLabel","_x$Name3","getOptionKey","JSON","stringify","isOptionEqualToValue","o","v","filterOptions","fillterOptions","handleChange","onInputChange","handleInputChange","renderInput","_this2$props$slots","TextField","_objectSpread","getLabel","error","helperText","message","onBlur","slots","textFieldProps","ref","hidden","Other","concat","prevProps","_this$props$existedId","ids","Set","length","undefined","reduce","a","b","has","push","add"],"mappings":"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"}
@@ -1,181 +1,2 @@
1
- import { defineProperty as _defineProperty, objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2, inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { createRef, Component } from 'react';
4
- import { styled, Box, IconButton, Typography, Tooltip } from '@mui/material';
5
- import FullscreenIcon from '@mui/icons-material/Fullscreen';
6
- import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
7
- import { getErrorMessage } from './helper.js';
8
- import '../components/breadcrumbs.js';
9
- import 'clipboard-copy';
10
- import '@mui/icons-material/Done';
11
- import '@mui/icons-material/ContentCopy';
12
- import '../components/help-tooltip.js';
13
- import TextEditor, { textEditorClasses } from '../components/text-editor.js';
14
-
15
- var _excluded = ["children"];
16
- function CreateTextEditor(params) {
17
- var TextEditor$1 = /*#__PURE__*/function (_Component) {
18
- function TextEditor$1(props) {
19
- var _this;
20
- _classCallCheck(this, TextEditor$1);
21
- _this = _callSuper(this, TextEditor$1, [props]);
22
- _defineProperty(_this, "handleFullscreenChange", function () {
23
- _this.setState({
24
- isFullscreen: !!document.fullscreenElement
25
- });
26
- });
27
- _defineProperty(_this, "handleFullscreenToggle", function () {
28
- if (_this.contentRef.current) {
29
- if (!document.fullscreenElement) {
30
- _this.contentRef.current.requestFullscreen()["catch"](function (err) {
31
- console.error("Error attempting to enable full-screen mode: ".concat(err.message));
32
- });
33
- } else {
34
- document.exitFullscreen();
35
- }
36
- }
37
- });
38
- _defineProperty(_this, "getWrapClasses", function () {
39
- var classes = [];
40
- if (_this.state.isFullscreen) classes.push(textEditorClasses.fullscreen);
41
- return classes.join(' ');
42
- });
43
- _this.state = {
44
- isFullscreen: false
45
- };
46
- _this.contentRef = /*#__PURE__*/createRef();
47
- return _this;
48
- }
49
- _inherits(TextEditor$1, _Component);
50
- return _createClass(TextEditor$1, [{
51
- key: "componentDidMount",
52
- value: function componentDidMount() {
53
- document.addEventListener('fullscreenchange', this.handleFullscreenChange);
54
- }
55
- }, {
56
- key: "componentWillUnmount",
57
- value: function componentWillUnmount() {
58
- document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
59
- }
60
- }, {
61
- key: "render",
62
- value: function render() {
63
- var _toString,
64
- _ref,
65
- _this$props$data,
66
- _this$props$name$toSt,
67
- _this$props$name,
68
- _this2 = this;
69
- var errorMessage = getErrorMessage(this.props.messageErrors, this.props.name);
70
- var dValue = (_toString = (_ref = this.props.name ? (_this$props$data = this.props.data) === null || _this$props$data === void 0 ? void 0 : _this$props$data[this.props.name] : '') === null || _ref === void 0 ? void 0 : _ref.toString()) !== null && _toString !== void 0 ? _toString : '';
71
- return jsxs(Box, {
72
- id: params.id,
73
- ref: this.contentRef,
74
- sx: {
75
- backgroundColor: '#fff'
76
- },
77
- children: [this.state.isFullscreen && jsx(WrapTitle, {
78
- children: jsx(Typography, {
79
- variant: 'h4',
80
- sx: {
81
- fontWeight: 600,
82
- flex: 1,
83
- textAlign: 'center'
84
- },
85
- children: params.title
86
- })
87
- }), jsxs(Wrap, {
88
- className: this.getWrapClasses(),
89
- children: [jsx(WrapActions, {
90
- children: jsx(Tooltip, {
91
- title: this.state.isFullscreen ? 'Exit Fullscreen' : 'Fullscreen',
92
- arrow: true,
93
- children: jsx(CustomButton, {
94
- sx: {
95
- color: '#06c'
96
- },
97
- onClick: this.handleFullscreenToggle,
98
- children: this.state.isFullscreen ? jsx(FullscreenExitIcon, {}) : jsx(FullscreenIcon, {})
99
- })
100
- })
101
- }), jsx(WrapTextEditor, {
102
- children: jsx(TextEditor, {
103
- defautValue: dValue,
104
- name: (_this$props$name$toSt = (_this$props$name = this.props.name) === null || _this$props$name === void 0 ? void 0 : _this$props$name.toString()) !== null && _this$props$name$toSt !== void 0 ? _this$props$name$toSt : '',
105
- readOnly: this.props.disabled,
106
- error: errorMessage.error,
107
- onBlur: function onBlur() {
108
- var _this2$props$onBlur, _this2$props;
109
- if (!_this2.props.name) return;
110
- (_this2$props$onBlur = (_this2$props = _this2.props).onBlur) === null || _this2$props$onBlur === void 0 || _this2$props$onBlur.call(_this2$props, _this2.props.name);
111
- }
112
- })
113
- })]
114
- })]
115
- });
116
- }
117
- }]);
118
- }(Component);
119
- return TextEditor$1;
120
- }
121
- var editorHeight = 64;
122
- var Wrap = styled(Box)(function (_ref2) {
123
- var theme = _ref2.theme;
124
- return _defineProperty(_defineProperty({
125
- maxWidth: theme.breakpoints.values.xl,
126
- margin: '0 auto',
127
- position: 'relative'
128
- }, "&.".concat(textEditorClasses.fullscreen, " .").concat(textEditorClasses.root), {
129
- height: "calc(100vh - ".concat(editorHeight + 10, "px)")
130
- }), "&.".concat(textEditorClasses.fullscreen), {
131
- width: '871px'
132
- });
133
- });
134
- var WrapTitle = styled(Box)({
135
- height: "".concat(editorHeight, "px"),
136
- display: 'flex',
137
- justifyContent: 'center',
138
- alignItems: 'center'
139
- });
140
- var WrapActions = styled(function (_ref4) {
141
- var children = _ref4.children,
142
- props = _objectWithoutProperties(_ref4, _excluded);
143
- return jsx(Box, _objectSpread2(_objectSpread2({}, props), {}, {
144
- children: jsx(Box, {
145
- children: children
146
- })
147
- }));
148
- })({
149
- position: 'sticky',
150
- top: '-1px',
151
- zIndex: 2,
152
- '& > div': {
153
- height: 0,
154
- display: 'flex',
155
- justifyContent: 'right',
156
- padding: '0 6px'
157
- }
158
- });
159
- var CustomButton = styled(IconButton)({
160
- flex: '0 0 auto',
161
- marginTop: '1px',
162
- width: '40px',
163
- height: '40px'
164
- });
165
- var WrapTextEditor = styled(Box)({
166
- backgroundColor: '#fff',
167
- width: '100%',
168
- '& .ql-container': {
169
- fontFamily: '"Roboto", serif',
170
- fontSize: '14px'
171
- },
172
- '& .ql-toolbar': {
173
- position: 'sticky',
174
- top: '-1px',
175
- backgroundColor: '#fff',
176
- zIndex: 1
177
- }
178
- });
179
-
180
- export { CreateTextEditor as default };
1
+ import{defineProperty as e,objectWithoutProperties as t,objectSpread2 as n,inherits as r,createClass as o,classCallCheck as i,callSuper as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{createRef as a,Component as u}from"react";import{styled as p,Box as m,IconButton as h,Typography as d,Tooltip as f}from"@mui/material";import g from"@mui/icons-material/Fullscreen";import v from"@mui/icons-material/FullscreenExit";import{getErrorMessage as x}from"./helper.js";import"../components/breadcrumbs.js";import"clipboard-copy";import"@mui/icons-material/Done";import"@mui/icons-material/ContentCopy";import"../components/help-tooltip.js";import F,{textEditorClasses as C}from"../components/text-editor.js";var b=["children"];function y(t){return function(){function n(t){var r;return i(this,n),r=l(this,n,[t]),e(r,"handleFullscreenChange",(function(){r.setState({isFullscreen:!!document.fullscreenElement})})),e(r,"handleFullscreenToggle",(function(){r.contentRef.current&&(document.fullscreenElement?document.exitFullscreen():r.contentRef.current.requestFullscreen().catch((function(e){console.error("Error attempting to enable full-screen mode: ".concat(e.message))})))})),e(r,"getWrapClasses",(function(){var e=[];return r.state.isFullscreen&&e.push(C.fullscreen),e.join(" ")})),r.state={isFullscreen:!1},r.contentRef=a(),r}return r(n,u),o(n,[{key:"componentDidMount",value:function(){document.addEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"render",value:function(){var e,n,r,o,i,l=this,a=x(this.props.messageErrors,this.props.name),u=null!==(e=null===(n=this.props.name?null===(r=this.props.data)||void 0===r?void 0:r[this.props.name]:"")||void 0===n?void 0:n.toString())&&void 0!==e?e:"";return c(m,{id:t.id,ref:this.contentRef,sx:{backgroundColor:"#fff"},children:[this.state.isFullscreen&&s(k,{children:s(d,{variant:"h4",sx:{fontWeight:600,flex:1,textAlign:"center"},children:t.title})}),c(j,{className:this.getWrapClasses(),children:[s(E,{children:s(f,{title:this.state.isFullscreen?"Exit Fullscreen":"Fullscreen",arrow:!0,children:s(S,{sx:{color:"#06c"},onClick:this.handleFullscreenToggle,children:this.state.isFullscreen?s(v,{}):s(g,{})})})}),s(W,{children:s(F,{defautValue:u,name:null!==(o=null===(i=this.props.name)||void 0===i?void 0:i.toString())&&void 0!==o?o:"",readOnly:this.props.disabled,error:a.error,onBlur:function(){var e,t;l.props.name&&(null===(e=(t=l.props).onBlur)||void 0===e||e.call(t,l.props.name))}})})]})]})}}])}()}var j=p(m)((function(t){var n=t.theme;return e(e({maxWidth:n.breakpoints.values.xl,margin:"0 auto",position:"relative"},"&.".concat(C.fullscreen," .").concat(C.root),{height:"calc(100vh - ".concat(74,"px)")}),"&.".concat(C.fullscreen),{width:"871px"})})),k=p(m)({height:"".concat(64,"px"),display:"flex",justifyContent:"center",alignItems:"center"}),E=p((function(e){var r=e.children,o=t(e,b);return s(m,n(n({},o),{},{children:s(m,{children:r})}))}))({position:"sticky",top:"-1px",zIndex:2,"& > div":{height:0,display:"flex",justifyContent:"right",padding:"0 6px"}}),S=p(h)({flex:"0 0 auto",marginTop:"1px",width:"40px",height:"40px"}),W=p(m)({backgroundColor:"#fff",width:"100%","& .ql-container":{fontFamily:'"Roboto", serif',fontSize:"14px"},"& .ql-toolbar":{position:"sticky",top:"-1px",backgroundColor:"#fff",zIndex:1}});export{y as default};
181
2
  //# sourceMappingURL=create.text-editor.js.map