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,271 @@
1
+ import { inherits as _inherits, createClass as _createClass, extends as _extends, classCallCheck as _classCallCheck, callSuper as _callSuper, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { __awaiter } from '../../node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js';
3
+ import React, { 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 _this;
14
+ _classCallCheck(this, SelectWithApi);
15
+ var _a;
16
+ _this = _callSuper(this, SelectWithApi, [props]);
17
+ _this.abortController = {
18
+ signalController: new AbortController()
19
+ };
20
+ _this.refInput = null;
21
+ _this.existedIds = [];
22
+ _this.getFetchDataFunc = function () {
23
+ var _a, _b;
24
+ return (_b = (_a = _this.props.fetchData) !== null && _a !== void 0 ? _a : params === null || params === void 0 ? void 0 : params.fetchData) !== null && _b !== void 0 ? _b : function () {
25
+ return Promise.resolve([]);
26
+ };
27
+ };
28
+ _this.timer = {
29
+ _timer: 0,
30
+ _second: 500,
31
+ callback: function callback(value) {
32
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
33
+ var _b, res, options;
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 = OptionsFilter(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
+ (_b = ApiAlertContext.ApiAlert) === null || _b === void 0 ? void 0 : _b.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, this, [[0, 9, 12, 15]]);
65
+ }));
66
+ },
67
+ start: function start(text) {
68
+ _this.timer.clear();
69
+ _this.timer._timer = window.setTimeout(function () {
70
+ return _this.timer.callback(text);
71
+ }, _this.timer._second);
72
+ },
73
+ clear: function clear() {
74
+ _this.abortController.signalController.abort();
75
+ clearTimeout(_this.timer._timer);
76
+ }
77
+ };
78
+ _this.fetchData = function () {
79
+ return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
80
+ var _c, _d, defaultValue, res, options, optionSelected;
81
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
82
+ while (1) switch (_context2.prev = _context2.next) {
83
+ case 0:
84
+ _context2.prev = 0;
85
+ defaultValue = this.getDefaultValue();
86
+ _context2.next = 4;
87
+ return this.getFetchDataFunc()(defaultValue, this.abortController.signalController.signal);
88
+ case 4:
89
+ res = _context2.sent;
90
+ if (Array.isArray(res)) {
91
+ _context2.next = 7;
92
+ break;
93
+ }
94
+ return _context2.abrupt("return");
95
+ case 7:
96
+ options = OptionsFilter(res, this.existedIds);
97
+ optionSelected = (_c = options.find(function (x) {
98
+ return x.Id === defaultValue;
99
+ })) !== null && _c !== void 0 ? _c : null;
100
+ this.setState({
101
+ options: options,
102
+ optionSelected: optionSelected,
103
+ loading: false
104
+ });
105
+ return _context2.abrupt("return");
106
+ case 13:
107
+ _context2.prev = 13;
108
+ _context2.t0 = _context2["catch"](0);
109
+ // console.log(error)
110
+ (_d = ApiAlertContext.ApiAlert) === null || _d === void 0 ? void 0 : _d.PushError('Error from server!');
111
+ case 16:
112
+ _context2.prev = 16;
113
+ this.setState({
114
+ statusText: 'no items',
115
+ loading: false
116
+ });
117
+ return _context2.finish(16);
118
+ case 19:
119
+ case "end":
120
+ return _context2.stop();
121
+ }
122
+ }, _callee2, this, [[0, 13, 16, 19]]);
123
+ }));
124
+ };
125
+ _this.handleChange = function (_, value) {
126
+ var _a;
127
+ _this.setState({
128
+ optionSelected: value
129
+ });
130
+ if (_this.refInput) _this.refInput.value = (_a = value === null || value === void 0 ? void 0 : value.Id) !== null && _a !== void 0 ? _a : '';
131
+ _this.props.onChange && _this.props.onChange(value);
132
+ };
133
+ _this.handleInputChange = function (_, value) {
134
+ var _a;
135
+ var state = {
136
+ inputValue: value
137
+ };
138
+ if (value === ((_a = _this.state.optionSelected) === null || _a === void 0 ? void 0 : _a.Name)) {
139
+ _this.setState(state);
140
+ return;
141
+ }
142
+ var valueFormated = value.trim().toLowerCase();
143
+ var selectedIndex = _this.state.options.findIndex(function (x) {
144
+ var _a;
145
+ return (_a = x.Name) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase().includes(valueFormated);
146
+ });
147
+ if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...';
148
+ _this.setState(state, function () {
149
+ if (selectedIndex < 0 || valueFormated === '') _this.timer.start(valueFormated);
150
+ });
151
+ };
152
+ _this.fillterOptions = function (options, state) {
153
+ return options.filter(function (x) {
154
+ var _a;
155
+ var value = state.inputValue.toLowerCase();
156
+ return x.Id.toLowerCase().includes(value) || ((_a = x.Name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(value));
157
+ });
158
+ };
159
+ _this.getLabel = function () {
160
+ var _a, _b;
161
+ return (_a = _this.props.label) !== null && _a !== void 0 ? _a : (_b = _this.props.name) === null || _b === void 0 ? void 0 : _b.toString();
162
+ };
163
+ _this.getDefaultValue = function () {
164
+ var _a, _b, _c;
165
+ if (!_this.props.name) return;
166
+ return (_c = (_a = _this.props.defaultValue) !== null && _a !== void 0 ? _a : (_b = _this.props.data) === null || _b === void 0 ? void 0 : _b[_this.props.name]) === null || _c === void 0 ? void 0 : _c.toString();
167
+ };
168
+ _this.state = {
169
+ options: [],
170
+ statusText: 'no items',
171
+ optionSelected: null,
172
+ inputValue: '',
173
+ loading: true
174
+ };
175
+ _this.existedIds = (_a = props.existedIds) !== null && _a !== void 0 ? _a : [];
176
+ return _this;
177
+ }
178
+ _inherits(SelectWithApi, _Component);
179
+ return _createClass(SelectWithApi, [{
180
+ key: "render",
181
+ value: function render() {
182
+ var _this2 = this;
183
+ var _a, _b, _c, _d;
184
+ var defaultValue = this.getDefaultValue();
185
+ var eMessage = getErrorMessage(this.props.messageErrors, this.props.name);
186
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Autocomplete, {
187
+ disabled: this.state.loading || this.props.disabled,
188
+ fullWidth: true,
189
+ noOptionsText: this.state.statusText,
190
+ options: this.state.options,
191
+ getOptionLabel: function getOptionLabel(x) {
192
+ var _a;
193
+ return (_a = x.Name) !== null && _a !== void 0 ? _a : x.Id;
194
+ },
195
+ getOptionKey: function getOptionKey(x) {
196
+ return JSON.stringify(x);
197
+ },
198
+ isOptionEqualToValue: function isOptionEqualToValue(o, v) {
199
+ return o.Id.toString() === v.Id.toString() && o.Name === v.Name;
200
+ },
201
+ filterOptions: this.fillterOptions
202
+ // select
203
+ ,
204
+ value: this.state.optionSelected,
205
+ onChange: this.handleChange
206
+ // input
207
+ ,
208
+ inputValue: this.state.inputValue,
209
+ onInputChange: this.handleInputChange,
210
+ renderInput: function renderInput(params) {
211
+ var _a;
212
+ return /*#__PURE__*/React.createElement(TextField, _extends({}, params, {
213
+ label: _this2.getLabel(),
214
+ error: eMessage.error,
215
+ helperText: eMessage.message,
216
+ onBlur: function onBlur() {
217
+ if (!_this2.props.name) return;
218
+ _this2.props.onBlur && _this2.props.onBlur(_this2.props.name);
219
+ }
220
+ }, (_a = _this2.props.options) === null || _a === void 0 ? void 0 : _a.textFieldProps));
221
+ }
222
+ }), /*#__PURE__*/React.createElement("input", {
223
+ ref: function ref(_ref) {
224
+ return _this2.refInput = _ref;
225
+ },
226
+ hidden: true,
227
+ name: (_a = this.props.name) === null || _a === void 0 ? void 0 : _a.toString(),
228
+ defaultValue: defaultValue
229
+ }), ((_b = this.state.optionSelected) === null || _b === void 0 ? void 0 : _b.Other) && /*#__PURE__*/React.createElement("input", {
230
+ hidden: true,
231
+ name: "".concat((_c = this.props.name) === null || _c === void 0 ? void 0 : _c.toString(), "Other"),
232
+ key: (_d = this.state.optionSelected.Id) !== null && _d !== void 0 ? _d : 'key',
233
+ defaultValue: JSON.stringify(this.state.optionSelected.Other)
234
+ }));
235
+ }
236
+ }, {
237
+ key: "componentDidMount",
238
+ value: function componentDidMount() {
239
+ this.fetchData();
240
+ }
241
+ }, {
242
+ key: "componentWillUnmount",
243
+ value: function componentWillUnmount() {
244
+ this.timer.clear();
245
+ }
246
+ }, {
247
+ key: "componentDidUpdate",
248
+ value: function componentDidUpdate(prevProps, prevState, snapshot) {
249
+ var _a;
250
+ if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {
251
+ this.existedIds = (_a = this.props.existedIds) !== null && _a !== void 0 ? _a : [];
252
+ }
253
+ }
254
+ }]);
255
+ }(Component);
256
+ return SelectWithApi;
257
+ };
258
+ function OptionsFilter(options) {
259
+ var existedId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
260
+ var ids = new Set(existedId);
261
+ return options.reduce(function (a, b) {
262
+ if (!ids.has(b.Id)) {
263
+ a.push(b);
264
+ ids.add(b.Id);
265
+ }
266
+ return a;
267
+ }, []);
268
+ }
269
+
270
+ export { CreateSelectWithApi as default };
271
+ //# sourceMappingURL=create.select-with-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.select-with-api.js","sources":["../../../src/form/create.select-with-api.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Autocomplete, FilterOptionsState, TextField, TextFieldProps } from '@mui/material'\r\nimport { getErrorMessage } from './helper'\r\nimport { IFormInputBase } from './types'\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\ninterface IOptions {\r\n textFieldProps: TextFieldProps\r\n}\r\n\r\nexport type SelectWithApiFetchData<TOption extends ISelectWithApiOption> = (value?: string, signal?: AbortSignal) => Promise<TOption[]>\r\n\r\nexport interface ISelectWithApiParams<TOption extends ISelectWithApiOption> {\r\n fetchData?: SelectWithApiFetchData<TOption>\r\n}\r\n\r\ninterface IProps<TModel, TOption extends ISelectWithApiOption> extends IFormInputBase<TModel>, ISelectWithApiParams<TOption> {\r\n onChange?: (value: TOption | null) => void\r\n existedIds?: string[]\r\n options?: IOptions\r\n}\r\n\r\nconst CreateSelectWithApi = function <TModel, TOption extends ISelectWithApiOption = ISelectWithApiOption>(params?: ISelectWithApiParams<TOption>) {\r\n interface IState {\r\n options: TOption[]\r\n statusText?: string\r\n optionSelected: TOption | null\r\n inputValue: string\r\n loading?: boolean\r\n }\r\n class SelectWithApi extends Component<IProps<TModel, TOption>, IState> {\r\n abortController = { signalController: new AbortController() }\r\n refInput: HTMLInputElement | null = null\r\n existedIds: string[] = []\r\n constructor(props: IProps<TModel, TOption>) {\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.options?.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<IProps<TModel, TOption>>, prevState: Readonly<IState>, snapshot?: any): 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 = (): SelectWithApiFetchData<TOption> => {\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 = OptionsFilter(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 = OptionsFilter(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: TOption | 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<IState, '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: TOption[], state: FilterOptionsState<TOption>) => {\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 return SelectWithApi\r\n}\r\nexport default CreateSelectWithApi\r\nexport type SelectWithApiType<TModel extends ISelectWithApiOption = ISelectWithApiOption> = ReturnType<typeof CreateSelectWithApi<TModel>>\r\n\r\nfunction OptionsFilter<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"],"names":["CreateSelectWithApi","params","SelectWithApi","_Component","props","_this","_classCallCheck","_callSuper","abortController","signalController","AbortController","refInput","existedIds","getFetchDataFunc","_b","_a","fetchData","Promise","resolve","timer","_timer","_second","callback","value","__awaiter","_regeneratorRuntime","mark","_callee","res","options","wrap","_callee$","_context","prev","next","signal","sent","OptionsFilter","setState","t0","ApiAlertContext","ApiAlert","PushError","statusText","finish","stop","start","text","clear","window","setTimeout","abort","clearTimeout","_callee2","_c","_d","defaultValue","optionSelected","_callee2$","_context2","getDefaultValue","Array","isArray","abrupt","find","x","Id","loading","handleChange","_","onChange","handleInputChange","state","inputValue","Name","valueFormated","trim","toLowerCase","selectedIndex","findIndex","includes","fillterOptions","filter","getLabel","label","name","toString","data","_inherits","_createClass","key","render","_this2","eMessage","getErrorMessage","messageErrors","React","createElement","Fragment","Autocomplete","disabled","fullWidth","noOptionsText","getOptionLabel","getOptionKey","JSON","stringify","isOptionEqualToValue","o","v","filterOptions","onInputChange","renderInput","TextField","_extends","error","helperText","message","onBlur","textFieldProps","ref","hidden","Other","concat","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","prevState","snapshot","Component","existedId","ids","Set","reduce","a","b","has","push","add"],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { defineProperty as _defineProperty, inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { __rest } from '../../node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js';
3
+ import React, { Component, createRef } 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 TextEditor, { textEditorClasses } from '../components/text-editor.js';
9
+
10
+ function CreateTextEditor(params) {
11
+ var Editor = /*#__PURE__*/function (_Component) {
12
+ function Editor(props) {
13
+ var _this;
14
+ _classCallCheck(this, Editor);
15
+ _this = _callSuper(this, Editor, [props]);
16
+ _this.handleFullscreenChange = function () {
17
+ _this.setState({
18
+ isFullscreen: !!document.fullscreenElement
19
+ });
20
+ };
21
+ _this.handleFullscreenToggle = function () {
22
+ if (_this.contentRef.current) {
23
+ if (!document.fullscreenElement) {
24
+ _this.contentRef.current.requestFullscreen()["catch"](function (err) {
25
+ console.error("Error attempting to enable full-screen mode: ".concat(err.message));
26
+ });
27
+ } else {
28
+ document.exitFullscreen();
29
+ }
30
+ }
31
+ };
32
+ _this.getWrapClasses = function () {
33
+ var classes = [];
34
+ if (_this.state.isFullscreen) classes.push(textEditorClasses.fullscreen);
35
+ return classes.join(' ');
36
+ };
37
+ _this.state = {
38
+ isFullscreen: false
39
+ };
40
+ _this.contentRef = /*#__PURE__*/createRef();
41
+ return _this;
42
+ }
43
+ _inherits(Editor, _Component);
44
+ return _createClass(Editor, [{
45
+ key: "componentDidMount",
46
+ value: function componentDidMount() {
47
+ document.addEventListener('fullscreenchange', this.handleFullscreenChange);
48
+ }
49
+ }, {
50
+ key: "componentWillUnmount",
51
+ value: function componentWillUnmount() {
52
+ document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
53
+ }
54
+ }, {
55
+ key: "render",
56
+ value: function render() {
57
+ var _this2 = this;
58
+ var _a, _b, _c, _d, _e;
59
+ var errorMessage = getErrorMessage(this.props.messageErrors, this.props.name);
60
+ var dValue = (_c = (_b = this.props.name ? (_a = this.props.data) === null || _a === void 0 ? void 0 : _a[this.props.name] : '') === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : '';
61
+ return /*#__PURE__*/React.createElement(Box, {
62
+ id: params.id,
63
+ ref: this.contentRef,
64
+ sx: {
65
+ backgroundColor: '#fff'
66
+ }
67
+ }, this.state.isFullscreen && /*#__PURE__*/React.createElement(WrapTitle, null, /*#__PURE__*/React.createElement(Typography, {
68
+ variant: "h4",
69
+ sx: {
70
+ fontWeight: 600,
71
+ flex: 1,
72
+ textAlign: 'center'
73
+ }
74
+ }, params.title)), /*#__PURE__*/React.createElement(Wrap, {
75
+ className: this.getWrapClasses()
76
+ }, /*#__PURE__*/React.createElement(WrapActions, null, /*#__PURE__*/React.createElement(Tooltip, {
77
+ title: this.state.isFullscreen ? 'Exit Fullscreen' : 'Fullscreen',
78
+ arrow: true
79
+ }, /*#__PURE__*/React.createElement(CustomButton, {
80
+ sx: {
81
+ color: '#06c'
82
+ },
83
+ onClick: this.handleFullscreenToggle
84
+ }, this.state.isFullscreen ? /*#__PURE__*/React.createElement(FullscreenExitIcon, null) : /*#__PURE__*/React.createElement(FullscreenIcon, null)))), /*#__PURE__*/React.createElement(WrapTextEditor, null, /*#__PURE__*/React.createElement(TextEditor, {
85
+ defautValue: dValue,
86
+ name: (_e = (_d = this.props.name) === null || _d === void 0 ? void 0 : _d.toString()) !== null && _e !== void 0 ? _e : '',
87
+ readOnly: this.props.disabled,
88
+ error: errorMessage.error,
89
+ onBlur: function onBlur() {
90
+ var _a, _b;
91
+ if (!_this2.props.name) return;
92
+ (_b = (_a = _this2.props).onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, _this2.props.name);
93
+ }
94
+ }))));
95
+ }
96
+ }]);
97
+ }(Component);
98
+ return Editor;
99
+ }
100
+ var editorHeight = 64;
101
+ var Wrap = styled(Box)(function (_ref) {
102
+ var theme = _ref.theme;
103
+ return _defineProperty(_defineProperty({
104
+ maxWidth: theme.breakpoints.values.xl,
105
+ margin: '0 auto',
106
+ position: 'relative'
107
+ }, "&.".concat(textEditorClasses.fullscreen, " .").concat(textEditorClasses.root), {
108
+ height: "calc(100vh - ".concat(editorHeight + 10, "px)")
109
+ }), "&.".concat(textEditorClasses.fullscreen), {
110
+ width: '871px'
111
+ });
112
+ });
113
+ var WrapTitle = styled(Box)({
114
+ height: "".concat(editorHeight, "px"),
115
+ display: 'flex',
116
+ justifyContent: 'center',
117
+ alignItems: 'center'
118
+ });
119
+ var WrapActions = styled(function (_a) {
120
+ var children = _a.children,
121
+ props = __rest(_a, ["children"]);
122
+ return /*#__PURE__*/React.createElement(Box, props, /*#__PURE__*/React.createElement(Box, null, children));
123
+ })({
124
+ position: 'sticky',
125
+ top: '-1px',
126
+ zIndex: 2,
127
+ '& > div': {
128
+ height: 0,
129
+ display: 'flex',
130
+ justifyContent: 'right',
131
+ padding: '0 6px'
132
+ }
133
+ });
134
+ var CustomButton = styled(IconButton)({
135
+ flex: '0 0 auto',
136
+ marginTop: '1px',
137
+ width: '40px',
138
+ height: '40px'
139
+ });
140
+ var WrapTextEditor = styled(Box)({
141
+ backgroundColor: '#fff',
142
+ width: '100%',
143
+ '& .ql-container': {
144
+ fontFamily: '"Roboto", serif',
145
+ fontSize: '14px'
146
+ },
147
+ '& .ql-toolbar': {
148
+ position: 'sticky',
149
+ top: '-1px',
150
+ backgroundColor: '#fff',
151
+ zIndex: 1
152
+ }
153
+ });
154
+
155
+ export { CreateTextEditor as default };
156
+ //# sourceMappingURL=create.text-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.text-editor.js","sources":["../../../src/form/create.text-editor.tsx"],"sourcesContent":["import React, { Component, createRef } from 'react'\r\nimport { Box, BoxProps, IconButton, styled, Tooltip, Typography } from '@mui/material'\r\nimport FullscreenIcon from '@mui/icons-material/Fullscreen'\r\nimport FullscreenExitIcon from '@mui/icons-material/FullscreenExit'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport TextEditor, { textEditorClasses } from '../components/text-editor'\r\n\r\ninterface IParams {\r\n id: string\r\n title: string\r\n}\r\n\r\nfunction CreateTextEditor<T>(params: IParams) {\r\n interface IProps extends IFormInputBase<T> {}\r\n\r\n interface IState {\r\n isFullscreen: boolean\r\n }\r\n\r\n class Editor extends Component<IProps, IState> {\r\n contentRef\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = {\r\n isFullscreen: false\r\n }\r\n this.contentRef = createRef<HTMLDivElement | null>()\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('fullscreenchange', this.handleFullscreenChange)\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('fullscreenchange', this.handleFullscreenChange)\r\n }\r\n\r\n handleFullscreenChange = () => {\r\n this.setState({ isFullscreen: !!document.fullscreenElement })\r\n }\r\n\r\n handleFullscreenToggle = () => {\r\n if (this.contentRef.current) {\r\n if (!document.fullscreenElement) {\r\n this.contentRef.current.requestFullscreen().catch((err) => {\r\n console.error(`Error attempting to enable full-screen mode: ${err.message}`)\r\n })\r\n } else {\r\n document.exitFullscreen()\r\n }\r\n }\r\n }\r\n\r\n getWrapClasses = () => {\r\n const classes = []\r\n if (this.state.isFullscreen) classes.push(textEditorClasses.fullscreen)\r\n return classes.join(' ')\r\n }\r\n\r\n render() {\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const dValue = (this.props.name ? this.props.data?.[this.props.name] : '')?.toString() ?? ''\r\n\r\n return (\r\n <Box id={params.id} ref={this.contentRef} sx={{ backgroundColor: '#fff' }}>\r\n {this.state.isFullscreen && (\r\n <WrapTitle>\r\n <Typography variant='h4' sx={{ fontWeight: 600, flex: 1, textAlign: 'center' }}>\r\n {params.title}\r\n </Typography>\r\n </WrapTitle>\r\n )}\r\n <Wrap className={this.getWrapClasses()}>\r\n <WrapActions>\r\n <Tooltip title={this.state.isFullscreen ? 'Exit Fullscreen' : 'Fullscreen'} arrow>\r\n <CustomButton sx={{ color: '#06c' }} onClick={this.handleFullscreenToggle}>\r\n {this.state.isFullscreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\r\n </CustomButton>\r\n </Tooltip>\r\n </WrapActions>\r\n <WrapTextEditor>\r\n <TextEditor\r\n defautValue={dValue}\r\n name={this.props.name?.toString() ?? ''}\r\n readOnly={this.props.disabled}\r\n error={errorMessage.error}\r\n onBlur={() => {\r\n if (!this.props.name) return\r\n this.props.onBlur?.(this.props.name)\r\n }}\r\n />\r\n </WrapTextEditor>\r\n </Wrap>\r\n </Box>\r\n )\r\n }\r\n }\r\n return Editor\r\n}\r\n\r\nexport default CreateTextEditor\r\n\r\nconst editorHeight = 64\r\n\r\nconst Wrap = styled(Box)(({ theme }) => ({\r\n maxWidth: theme.breakpoints.values.xl,\r\n margin: '0 auto',\r\n position: 'relative',\r\n [`&.${textEditorClasses.fullscreen} .${textEditorClasses.root}`]: {\r\n height: `calc(100vh - ${editorHeight + 10}px)`\r\n },\r\n [`&.${textEditorClasses.fullscreen}`]: {\r\n width: '871px'\r\n }\r\n}))\r\n\r\nconst WrapTitle = styled(Box)({\r\n height: `${editorHeight}px`,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n})\r\n\r\nconst WrapActions = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <Box>{children}</Box>\r\n </Box>\r\n))({\r\n position: 'sticky',\r\n top: '-1px',\r\n zIndex: 2,\r\n '& > div': {\r\n height: 0,\r\n display: 'flex',\r\n justifyContent: 'right',\r\n padding: '0 6px'\r\n }\r\n})\r\n\r\nconst CustomButton = styled(IconButton)({\r\n flex: '0 0 auto',\r\n marginTop: '1px',\r\n width: '40px',\r\n height: '40px'\r\n})\r\n\r\nconst WrapTextEditor = styled(Box)({\r\n backgroundColor: '#fff',\r\n width: '100%',\r\n '& .ql-container': {\r\n fontFamily: '\"Roboto\", serif',\r\n fontSize: '14px'\r\n },\r\n '& .ql-toolbar': {\r\n position: 'sticky',\r\n top: '-1px',\r\n backgroundColor: '#fff',\r\n zIndex: 1\r\n }\r\n})\r\n"],"names":["CreateTextEditor","params","Editor","_Component","props","_this","_classCallCheck","_callSuper","handleFullscreenChange","setState","isFullscreen","document","fullscreenElement","handleFullscreenToggle","contentRef","current","requestFullscreen","err","console","error","concat","message","exitFullscreen","getWrapClasses","classes","state","push","textEditorClasses","fullscreen","join","createRef","_inherits","_createClass","key","value","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","render","_this2","errorMessage","getErrorMessage","messageErrors","name","dValue","_c","_b","_a","data","toString","React","createElement","Box","id","ref","sx","backgroundColor","WrapTitle","Typography","variant","fontWeight","flex","textAlign","title","Wrap","className","WrapActions","Tooltip","arrow","CustomButton","color","onClick","FullscreenExitIcon","FullscreenIcon","WrapTextEditor","TextEditor","defautValue","_e","_d","readOnly","disabled","onBlur","call","Component","editorHeight","styled","_ref","theme","_defineProperty","maxWidth","breakpoints","values","xl","margin","position","root","height","width","display","justifyContent","alignItems","children","__rest","top","zIndex","padding","IconButton","marginTop","fontFamily","fontSize"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { createClass as _createClass, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import FormValidator from './validator.js';
3
+ import FormModalWrapper from './modal-wrapper.js';
4
+ import CreateFormBase from './create.form-base.js';
5
+ import CreateInputFile from './create.input.file.js';
6
+ import CreateInputBase from './create.input-base.js';
7
+ import CreateDatePicker from './create.date-picker.js';
8
+ import CreateTextEditor from './create.text-editor.js';
9
+ import CreateDateExpired from './create.date-expired.js';
10
+ import CreateFormComfirm from './create.form-comfirm.js';
11
+ import CreateSelectSimple from './create.select-simple.js';
12
+ import CreateSelectWithApi from './create.select-with-api.js';
13
+ import CreateFormGridLayout from './create.form-grid-layout.js';
14
+ import CreateAutocompleteChip from './create.autocomplete.chips.js';
15
+ import { FormBottomBarWrap } from './create.form-grid-layout.units.js';
16
+
17
+ var DinoFormBase = /*#__PURE__*/_createClass(function DinoFormBase() {
18
+ _classCallCheck(this, DinoFormBase);
19
+ //#region Base
20
+ this.ModalWrap = FormModalWrapper;
21
+ this.BottomBarWrap = FormBottomBarWrap;
22
+ this.FormValidator = FormValidator;
23
+ this.validator = FormValidator.initial;
24
+ this.createFormBase = CreateFormBase;
25
+ this.createFormComfirm = CreateFormComfirm;
26
+ this.createFormGridLayout = CreateFormGridLayout;
27
+ //#endregion
28
+ //#region Inputs
29
+ this.createDateExpired = CreateDateExpired;
30
+ this.createDatePicker = CreateDatePicker;
31
+ this.createAutocompleteChip = CreateAutocompleteChip;
32
+ this.createInput = CreateInputBase;
33
+ this.createInputFile = CreateInputFile;
34
+ this.createSelectSimple = CreateSelectSimple;
35
+ this.createSelectWithApi = CreateSelectWithApi;
36
+ this.createTextEditor = CreateTextEditor;
37
+ //#endregion
38
+ });
39
+ var DinoForm = new DinoFormBase();
40
+
41
+ export { DinoForm as default };
42
+ //# sourceMappingURL=dino-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dino-form.js","sources":["../../../src/form/dino-form.tsx"],"sourcesContent":["import FormValidator from './validator'\r\nimport FormModalWrapper from './modal-wrapper'\r\nimport CreateFormBase from './create.form-base'\r\nimport CreateInputFile from './create.input.file'\r\nimport CreateInputBase from './create.input-base'\r\nimport CreateDatePicker from './create.date-picker'\r\nimport CreateTextEditor from './create.text-editor'\r\nimport CreateDateExpired from './create.date-expired'\r\nimport CreateFormComfirm from './create.form-comfirm'\r\nimport CreateSelectSimple from './create.select-simple'\r\nimport CreateSelectWithApi from './create.select-with-api'\r\nimport CreateFormGridLayout from './create.form-grid-layout'\r\nimport CreateAutocompleteChip from './create.autocomplete.chips'\r\nimport { FormBottomBarWrap } from './create.form-grid-layout.units'\r\n\r\nclass DinoFormBase {\r\n //#region Base\r\n ModalWrap = FormModalWrapper\r\n BottomBarWrap = FormBottomBarWrap\r\n FormValidator = FormValidator\r\n validator = FormValidator.initial\r\n createFormBase = CreateFormBase\r\n createFormComfirm = CreateFormComfirm\r\n createFormGridLayout = CreateFormGridLayout\r\n //#endregion\r\n\r\n //#region Inputs\r\n createDateExpired= CreateDateExpired\r\n createDatePicker = CreateDatePicker\r\n createAutocompleteChip = CreateAutocompleteChip\r\n createInput = CreateInputBase\r\n createInputFile = CreateInputFile\r\n createSelectSimple = CreateSelectSimple\r\n createSelectWithApi = CreateSelectWithApi\r\n createTextEditor = CreateTextEditor\r\n //#endregion\r\n}\r\n\r\nconst DinoForm = new DinoFormBase()\r\nexport default DinoForm\r\n"],"names":["DinoFormBase","_createClass","_classCallCheck","ModalWrap","FormModalWrapper","BottomBarWrap","FormBottomBarWrap","FormValidator","validator","initial","createFormBase","CreateFormBase","createFormComfirm","CreateFormComfirm","createFormGridLayout","CreateFormGridLayout","createDateExpired","CreateDateExpired","createDatePicker","CreateDatePicker","createAutocompleteChip","CreateAutocompleteChip","createInput","CreateInputBase","createInputFile","CreateInputFile","createSelectSimple","CreateSelectSimple","createSelectWithApi","CreateSelectWithApi","createTextEditor","CreateTextEditor","DinoForm"],"mappings":";;;;;;;;;;;;;;;;AAamE,IAE7DA,YAAY,gBAAAC,YAAA,CAAlB,SAAAD,eAAA;AAAAE,EAAAA,eAAA,OAAAF,YAAA,CAAA;AACE;EACA,IAAS,CAAAG,SAAA,GAAGC,gBAAgB;EAC5B,IAAa,CAAAC,aAAA,GAAGC,iBAAiB;EACjC,IAAa,CAAAC,aAAA,GAAGA,aAAa;AAC7B,EAAA,IAAA,CAAAC,SAAS,GAAGD,aAAa,CAACE,OAAO;EACjC,IAAc,CAAAC,cAAA,GAAGC,cAAc;EAC/B,IAAiB,CAAAC,iBAAA,GAAGC,iBAAiB;EACrC,IAAoB,CAAAC,oBAAA,GAAGC,oBAAoB;AAC3C;AAEA;EACA,IAAiB,CAAAC,iBAAA,GAAEC,iBAAiB;EACpC,IAAgB,CAAAC,gBAAA,GAAGC,gBAAgB;EACnC,IAAsB,CAAAC,sBAAA,GAAGC,sBAAsB;EAC/C,IAAW,CAAAC,WAAA,GAAGC,eAAe;EAC7B,IAAe,CAAAC,eAAA,GAAGC,eAAe;EACjC,IAAkB,CAAAC,kBAAA,GAAGC,kBAAkB;EACvC,IAAmB,CAAAC,mBAAA,GAAGC,mBAAmB;EACzC,IAAgB,CAAAC,gBAAA,GAAGC,gBAAgB;AACnC;AACF,CAAC,CAAA;AAED,IAAMC,QAAQ,GAAG,IAAIhC,YAAY;;;;"}