@rulab/adminjs-components 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +372 -241
- package/dist/index.d.cts +25 -13
- package/dist/index.d.ts +25 -13
- package/dist/index.js +365 -238
- package/package.json +4 -1
- package/src/components/ColorStatus/ColorStatusEdit.tsx +94 -0
- package/src/components/ColorStatus/ColorStatusList.tsx +20 -0
- package/src/components/ColorStatus/ColorStatusShow.tsx +23 -0
- package/src/components/ColorStatus/index.ts +3 -0
- package/src/components/ColorStatus/styles.ts +30 -0
- package/src/components/ColorStatus/types.ts +5 -0
- package/src/components/Editor/EditorList.jsx +23 -0
- package/src/components/Editor/EditorShow.jsx +1 -1
- package/src/components/Editor/index.ts +1 -0
- package/src/components/Editor/styles.ts +5 -3
- package/src/components/index.ts +6 -2
package/dist/index.cjs
CHANGED
|
@@ -30,17 +30,133 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
|
+
ColorStatusEdit: () => ColorStatusEdit_default,
|
|
34
|
+
ColorStatusList: () => ColorStatusList_default,
|
|
35
|
+
ColorStatusShow: () => ColorStatusShow_default,
|
|
33
36
|
CustomSlug: () => CustomSlug_default,
|
|
34
37
|
Editor: () => Editor_default,
|
|
38
|
+
EditorList: () => EditorList_default,
|
|
35
39
|
EditorShow: () => EditorShow_default,
|
|
36
40
|
StringList: () => StringList_default,
|
|
37
41
|
StringListShow: () => StringListShow_default
|
|
38
42
|
});
|
|
39
43
|
module.exports = __toCommonJS(src_exports);
|
|
40
44
|
|
|
41
|
-
// src/components/
|
|
45
|
+
// src/components/ColorStatus/ColorStatusEdit.tsx
|
|
42
46
|
var import_react = __toESM(require("react"), 1);
|
|
43
|
-
var
|
|
47
|
+
var import_react_select = __toESM(require("react-select"), 1);
|
|
48
|
+
var import_chroma_js = __toESM(require("chroma-js"), 1);
|
|
49
|
+
|
|
50
|
+
// src/components/ColorStatus/styles.ts
|
|
51
|
+
var import_styled_components = require("@adminjs/design-system/styled-components");
|
|
52
|
+
var ColorStatusWrapper = import_styled_components.styled.div`
|
|
53
|
+
margin-bottom: 24px;
|
|
54
|
+
`;
|
|
55
|
+
var Label = import_styled_components.styled.div`
|
|
56
|
+
font-size: 12px;
|
|
57
|
+
margin-bottom: 8px;
|
|
58
|
+
`;
|
|
59
|
+
var ShowLabel = import_styled_components.styled.div`
|
|
60
|
+
font-size: 12px;
|
|
61
|
+
margin-bottom: 8px;
|
|
62
|
+
color: rgb(137, 138, 154);
|
|
63
|
+
`;
|
|
64
|
+
var ColorStatusBadgeWrapper = import_styled_components.styled.div`
|
|
65
|
+
margin-bottom: 20px;
|
|
66
|
+
`;
|
|
67
|
+
var ColorStatusBadge = import_styled_components.styled.div`
|
|
68
|
+
background-color: ${(props) => props.color};
|
|
69
|
+
width: fit-content;
|
|
70
|
+
padding: 5px 10px;
|
|
71
|
+
border-radius: 20px;
|
|
72
|
+
font-size: 12px;
|
|
73
|
+
color: white;
|
|
74
|
+
white-space: nowrap;
|
|
75
|
+
`;
|
|
76
|
+
|
|
77
|
+
// src/components/ColorStatus/ColorStatusEdit.tsx
|
|
78
|
+
var dot = (color = "transparent") => ({
|
|
79
|
+
alignItems: "center",
|
|
80
|
+
display: "flex",
|
|
81
|
+
":before": {
|
|
82
|
+
backgroundColor: color,
|
|
83
|
+
borderRadius: 10,
|
|
84
|
+
content: '" "',
|
|
85
|
+
display: "block",
|
|
86
|
+
marginRight: 8,
|
|
87
|
+
height: 10,
|
|
88
|
+
width: 10
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
var colorStyles = {
|
|
92
|
+
control: (styles) => ({ ...styles, backgroundColor: "white" }),
|
|
93
|
+
option: (styles, { data, isDisabled, isFocused, isSelected }) => {
|
|
94
|
+
const color = (0, import_chroma_js.default)(data.color);
|
|
95
|
+
return {
|
|
96
|
+
...styles,
|
|
97
|
+
backgroundColor: isSelected ? data.color : isFocused ? color.alpha(0.1).css() : void 0,
|
|
98
|
+
color: isSelected ? import_chroma_js.default.contrast(color, "white") > 2 ? "white" : "black" : data.color,
|
|
99
|
+
":active": {
|
|
100
|
+
...styles[":active"],
|
|
101
|
+
backgroundColor: isSelected ? data.color : color.alpha(0.3).css()
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
input: (styles) => ({ ...styles, ...dot() }),
|
|
106
|
+
placeholder: (styles) => ({ ...styles, ...dot("#ccc") }),
|
|
107
|
+
singleValue: (styles, { data }) => ({ ...styles, ...dot(data.color) })
|
|
108
|
+
};
|
|
109
|
+
var ColorStatus = ({ property, record, onChange }) => {
|
|
110
|
+
const availableValues = property.availableValues;
|
|
111
|
+
const currentOption = availableValues.find(
|
|
112
|
+
(item) => item.value === record.params.colorStatus
|
|
113
|
+
);
|
|
114
|
+
const [selectOption, setCurrentOption] = (0, import_react.useState)(currentOption);
|
|
115
|
+
const handleSelectChange = (option) => {
|
|
116
|
+
setCurrentOption(option);
|
|
117
|
+
};
|
|
118
|
+
(0, import_react.useEffect)(() => {
|
|
119
|
+
onChange(property.path, selectOption?.value);
|
|
120
|
+
}, [selectOption]);
|
|
121
|
+
return /* @__PURE__ */ import_react.default.createElement(ColorStatusWrapper, null, /* @__PURE__ */ import_react.default.createElement(Label, null, property.path), /* @__PURE__ */ import_react.default.createElement(
|
|
122
|
+
import_react_select.default,
|
|
123
|
+
{
|
|
124
|
+
className: "basic-single",
|
|
125
|
+
classNamePrefix: "select",
|
|
126
|
+
defaultValue: selectOption ?? availableValues[0],
|
|
127
|
+
onChange: handleSelectChange,
|
|
128
|
+
isClearable: true,
|
|
129
|
+
name: "color",
|
|
130
|
+
options: availableValues,
|
|
131
|
+
styles: colorStyles
|
|
132
|
+
}
|
|
133
|
+
));
|
|
134
|
+
};
|
|
135
|
+
var ColorStatusEdit_default = ColorStatus;
|
|
136
|
+
|
|
137
|
+
// src/components/ColorStatus/ColorStatusShow.tsx
|
|
138
|
+
var import_react2 = __toESM(require("react"), 1);
|
|
139
|
+
var ColorStatusShow = ({ property, record }) => {
|
|
140
|
+
const currentOption = property.availableValues?.find(
|
|
141
|
+
(item) => item.value === record.params.colorStatus
|
|
142
|
+
);
|
|
143
|
+
return /* @__PURE__ */ import_react2.default.createElement(ColorStatusBadgeWrapper, null, /* @__PURE__ */ import_react2.default.createElement(ShowLabel, null, property.path), /* @__PURE__ */ import_react2.default.createElement(ColorStatusBadge, { color: currentOption.color }, record.params.colorStatus));
|
|
144
|
+
};
|
|
145
|
+
var ColorStatusShow_default = ColorStatusShow;
|
|
146
|
+
|
|
147
|
+
// src/components/ColorStatus/ColorStatusList.tsx
|
|
148
|
+
var import_react3 = __toESM(require("react"), 1);
|
|
149
|
+
var ColorStatusList = ({ property, record }) => {
|
|
150
|
+
const currentOption = property.availableValues?.find(
|
|
151
|
+
(item) => item.value === record.params.colorStatus
|
|
152
|
+
);
|
|
153
|
+
return /* @__PURE__ */ import_react3.default.createElement(ColorStatusBadge, { color: currentOption.color }, record.params.colorStatus);
|
|
154
|
+
};
|
|
155
|
+
var ColorStatusList_default = ColorStatusList;
|
|
156
|
+
|
|
157
|
+
// src/components/CustomSlug/CustomSlug.tsx
|
|
158
|
+
var import_react4 = __toESM(require("react"), 1);
|
|
159
|
+
var import_styled_components3 = require("styled-components");
|
|
44
160
|
var import_design_system2 = require("@adminjs/design-system");
|
|
45
161
|
|
|
46
162
|
// src/utils/slugifyImport.ts
|
|
@@ -59,20 +175,20 @@ var slugifyTitle = (title) => {
|
|
|
59
175
|
};
|
|
60
176
|
|
|
61
177
|
// src/components/CustomSlug/styles.ts
|
|
62
|
-
var
|
|
178
|
+
var import_styled_components2 = require("@adminjs/design-system/styled-components");
|
|
63
179
|
var import_design_system = require("@adminjs/design-system");
|
|
64
|
-
var StyledInputWrapper = (0,
|
|
180
|
+
var StyledInputWrapper = (0, import_styled_components2.styled)(import_design_system.Box)`
|
|
65
181
|
display: flex;
|
|
66
182
|
margin-bottom: 40px;
|
|
67
183
|
`;
|
|
68
|
-
var StyledCustomInput = (0,
|
|
184
|
+
var StyledCustomInput = (0, import_styled_components2.styled)(import_design_system.Input)`
|
|
69
185
|
width: 100%;
|
|
70
186
|
margin-right: 10px;
|
|
71
187
|
`;
|
|
72
|
-
var StyledGenerateButton = (0,
|
|
188
|
+
var StyledGenerateButton = (0, import_styled_components2.styled)(import_design_system.Button)`
|
|
73
189
|
white-space: nowrap;
|
|
74
190
|
`;
|
|
75
|
-
var StyledLabel =
|
|
191
|
+
var StyledLabel = import_styled_components2.styled.div`
|
|
76
192
|
font-size: 12px;
|
|
77
193
|
margin-bottom: 8px;
|
|
78
194
|
text-transform: capitalize;
|
|
@@ -80,11 +196,11 @@ var StyledLabel = import_styled_components.styled.div`
|
|
|
80
196
|
|
|
81
197
|
// src/components/CustomSlug/CustomSlug.tsx
|
|
82
198
|
var CustomSlug = ({ property, record, onChange }) => {
|
|
83
|
-
const [inputValue, setInputValue] = (0,
|
|
84
|
-
(0,
|
|
199
|
+
const [inputValue, setInputValue] = (0, import_react4.useState)(record.params.slug);
|
|
200
|
+
(0, import_react4.useEffect)(() => {
|
|
85
201
|
onChange(property.path, inputValue);
|
|
86
202
|
}, [inputValue]);
|
|
87
|
-
return /* @__PURE__ */
|
|
203
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_styled_components3.ThemeProvider, { theme: import_design_system2.theme }, /* @__PURE__ */ import_react4.default.createElement(StyledLabel, { htmlFor: "customSlug" }, property.path), /* @__PURE__ */ import_react4.default.createElement(StyledInputWrapper, null, /* @__PURE__ */ import_react4.default.createElement(
|
|
88
204
|
StyledCustomInput,
|
|
89
205
|
{
|
|
90
206
|
id: property.path,
|
|
@@ -92,7 +208,7 @@ var CustomSlug = ({ property, record, onChange }) => {
|
|
|
92
208
|
value: inputValue,
|
|
93
209
|
onChange: handleInput
|
|
94
210
|
}
|
|
95
|
-
), /* @__PURE__ */
|
|
211
|
+
), /* @__PURE__ */ import_react4.default.createElement(StyledGenerateButton, { variant: "outlined", onClick: generateSlug }, "Generate Slug")));
|
|
96
212
|
function handleInput(e) {
|
|
97
213
|
setInputValue(e.target.value);
|
|
98
214
|
}
|
|
@@ -106,62 +222,257 @@ var CustomSlug = ({ property, record, onChange }) => {
|
|
|
106
222
|
};
|
|
107
223
|
var CustomSlug_default = CustomSlug;
|
|
108
224
|
|
|
109
|
-
// src/components/
|
|
110
|
-
var import_design_system5 = require("@adminjs/design-system");
|
|
225
|
+
// src/components/Editor/Editor.jsx
|
|
111
226
|
var import_react5 = __toESM(require("react"), 1);
|
|
227
|
+
var import_styled_components5 = require("styled-components");
|
|
228
|
+
var import_editorjs = __toESM(require("@editorjs/editorjs"), 1);
|
|
229
|
+
var import_design_system4 = require("@adminjs/design-system");
|
|
230
|
+
|
|
231
|
+
// src/components/Editor/styles.ts
|
|
232
|
+
var import_design_system3 = require("@adminjs/design-system");
|
|
233
|
+
var import_styled_components4 = require("@adminjs/design-system/styled-components");
|
|
234
|
+
var StyledLabel2 = import_styled_components4.styled.div`
|
|
235
|
+
font-size: 12px;
|
|
236
|
+
margin-bottom: 8px;
|
|
237
|
+
text-transform: capitalize;
|
|
238
|
+
`;
|
|
239
|
+
var StyledShowLabel = (0, import_styled_components4.styled)(StyledLabel2)`
|
|
240
|
+
color: rgb(137, 138, 154);
|
|
241
|
+
font-weight: 300;
|
|
242
|
+
`;
|
|
243
|
+
var StyledEditorWrapper = (0, import_styled_components4.styled)(import_design_system3.Box)`
|
|
244
|
+
padding: 12px;
|
|
245
|
+
margin-bottom: 24px;
|
|
246
|
+
border: 1px solid rgb(187, 195, 203);
|
|
247
|
+
`;
|
|
248
|
+
var StyledEditorViewWrapper = (0, import_styled_components4.styled)(import_design_system3.Box)`
|
|
249
|
+
h1,
|
|
250
|
+
h2,
|
|
251
|
+
h3 {
|
|
252
|
+
margin-bottom: 5px;
|
|
253
|
+
font-weight: bold;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
h1 {
|
|
257
|
+
font-size: 18px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
h2 {
|
|
261
|
+
font-size: 16px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
h3 {
|
|
265
|
+
font-size: 14px;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
p {
|
|
269
|
+
margin-bottom: 8px;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
ol,
|
|
273
|
+
ul {
|
|
274
|
+
margin-left: 20px;
|
|
275
|
+
margin-bottom: 8px;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
ol {
|
|
279
|
+
list-style: auto;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
ul {
|
|
283
|
+
list-style: inherit;
|
|
284
|
+
}
|
|
285
|
+
`;
|
|
286
|
+
var StyledEditorShowWrapper = (0, import_styled_components4.styled)(StyledEditorViewWrapper)`
|
|
287
|
+
margin-bottom: 24px;
|
|
288
|
+
`;
|
|
289
|
+
var StyledEditor = import_styled_components4.styled.div`
|
|
290
|
+
.cdx-block,
|
|
291
|
+
.ce-header {
|
|
292
|
+
padding-left: 58px;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.cdx-list {
|
|
296
|
+
padding-left: 85px;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.ce-block__content {
|
|
300
|
+
width: 100%;
|
|
301
|
+
max-width: none;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.ce-toolbar__content {
|
|
305
|
+
max-width: none;
|
|
306
|
+
left: 0;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.ce-toolbar__actions {
|
|
310
|
+
left: 0;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
h1.ce-header {
|
|
314
|
+
font-size: 22px;
|
|
315
|
+
font-weight: bold;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
h2.ce-header {
|
|
319
|
+
font-size: 20px;
|
|
320
|
+
font-weight: bold;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
h3.ce-header {
|
|
324
|
+
font-size: 18px;
|
|
325
|
+
font-weight: bold;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
h4.ce-header {
|
|
329
|
+
font-size: 16px;
|
|
330
|
+
font-weight: bold;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
h5.ce-header {
|
|
334
|
+
font-size: 15px;
|
|
335
|
+
font-weight: bold;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
h6.ce-header {
|
|
339
|
+
font-size: 14px;
|
|
340
|
+
font-weight: bold;
|
|
341
|
+
}
|
|
342
|
+
`;
|
|
343
|
+
|
|
344
|
+
// src/components/Editor/config.ts
|
|
345
|
+
var import_header = __toESM(require("@editorjs/header"), 1);
|
|
346
|
+
var import_paragraph = __toESM(require("@editorjs/paragraph"), 1);
|
|
347
|
+
var import_list = __toESM(require("@editorjs/list"), 1);
|
|
348
|
+
var EDITOR_TOOLS = {
|
|
349
|
+
paragraph: {
|
|
350
|
+
class: import_paragraph.default,
|
|
351
|
+
inlineToolbar: true
|
|
352
|
+
},
|
|
353
|
+
list: import_list.default,
|
|
354
|
+
header: import_header.default
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
// src/components/Editor/Editor.jsx
|
|
358
|
+
var Editor = ({ property, record, onChangeAdmin, editorId }) => {
|
|
359
|
+
const [jsonData, setJsonData] = (0, import_react5.useState)();
|
|
360
|
+
const isSavedData = Boolean(record.params[property.path]);
|
|
361
|
+
const ref = (0, import_react5.useRef)();
|
|
362
|
+
(0, import_react5.useEffect)(() => {
|
|
363
|
+
onChangeAdmin(property.path, jsonData);
|
|
364
|
+
}, [jsonData]);
|
|
365
|
+
(0, import_react5.useEffect)(() => {
|
|
366
|
+
if (!ref.current) {
|
|
367
|
+
const editor = new import_editorjs.default({
|
|
368
|
+
holder: editorId,
|
|
369
|
+
tools: EDITOR_TOOLS,
|
|
370
|
+
data: isSavedData ? JSON.parse(record.params[property.path]) : "",
|
|
371
|
+
async onChange(api, event) {
|
|
372
|
+
const data = await api.saver.save();
|
|
373
|
+
setJsonData(JSON.stringify(data));
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
ref.current = editor;
|
|
377
|
+
}
|
|
378
|
+
return () => {
|
|
379
|
+
ref?.current?.destroy?.();
|
|
380
|
+
};
|
|
381
|
+
}, []);
|
|
382
|
+
return /* @__PURE__ */ import_react5.default.createElement(import_styled_components5.ThemeProvider, { theme: import_design_system4.theme }, /* @__PURE__ */ import_react5.default.createElement(StyledLabel2, null, property.path), /* @__PURE__ */ import_react5.default.createElement(StyledEditorWrapper, null, /* @__PURE__ */ import_react5.default.createElement(StyledEditor, { id: editorId })));
|
|
383
|
+
};
|
|
384
|
+
var Editor_default = Editor;
|
|
385
|
+
|
|
386
|
+
// src/components/Editor/EditorList.jsx
|
|
387
|
+
var import_react6 = __toESM(require("react"), 1);
|
|
112
388
|
var import_styled_components6 = require("styled-components");
|
|
389
|
+
var import_design_system5 = require("@adminjs/design-system");
|
|
390
|
+
|
|
391
|
+
// src/utils/parseHtml.ts
|
|
392
|
+
var import_editorjs_html = __toESM(require("editorjs-html"), 1);
|
|
393
|
+
var parseHtml = (jsonData) => {
|
|
394
|
+
const edjsParser = (0, import_editorjs_html.default)();
|
|
395
|
+
try {
|
|
396
|
+
const data = edjsParser.parse(JSON.parse(String(jsonData)));
|
|
397
|
+
return String(data).replace(/>,</g, "><");
|
|
398
|
+
} catch (e) {
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
// src/components/Editor/EditorList.jsx
|
|
404
|
+
var EditorList = ({ property, record }) => {
|
|
405
|
+
const htmlContent = parseHtml(record.params[property.path]);
|
|
406
|
+
return /* @__PURE__ */ import_react6.default.createElement(import_styled_components6.ThemeProvider, { theme: import_design_system5.theme }, /* @__PURE__ */ import_react6.default.createElement(StyledEditorViewWrapper, null, htmlContent && /* @__PURE__ */ import_react6.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
|
|
407
|
+
};
|
|
408
|
+
var EditorList_default = EditorList;
|
|
409
|
+
|
|
410
|
+
// src/components/Editor/EditorShow.jsx
|
|
411
|
+
var import_react7 = __toESM(require("react"), 1);
|
|
412
|
+
var import_styled_components7 = require("styled-components");
|
|
413
|
+
var import_design_system6 = require("@adminjs/design-system");
|
|
414
|
+
var EditorShow = ({ property, record }) => {
|
|
415
|
+
const htmlContent = parseHtml(record.params[property.path]);
|
|
416
|
+
return /* @__PURE__ */ import_react7.default.createElement(import_styled_components7.ThemeProvider, { theme: import_design_system6.theme }, /* @__PURE__ */ import_react7.default.createElement(StyledEditorShowWrapper, null, /* @__PURE__ */ import_react7.default.createElement(StyledShowLabel, null, property.path), htmlContent && /* @__PURE__ */ import_react7.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
|
|
417
|
+
};
|
|
418
|
+
var EditorShow_default = EditorShow;
|
|
419
|
+
|
|
420
|
+
// src/components/StringList/StringList.tsx
|
|
421
|
+
var import_design_system9 = require("@adminjs/design-system");
|
|
422
|
+
var import_react11 = __toESM(require("react"), 1);
|
|
423
|
+
var import_styled_components11 = require("styled-components");
|
|
113
424
|
|
|
114
425
|
// src/components/StringList/styles.ts
|
|
115
|
-
var
|
|
116
|
-
var
|
|
117
|
-
var StyledWrapper = (0,
|
|
426
|
+
var import_design_system7 = require("@adminjs/design-system");
|
|
427
|
+
var import_styled_components8 = require("@adminjs/design-system/styled-components");
|
|
428
|
+
var StyledWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
118
429
|
display: flex;
|
|
119
430
|
flex-direction: column;
|
|
120
431
|
margin-bottom: 45px;
|
|
121
432
|
`;
|
|
122
|
-
var StyledCustomInput2 = (0,
|
|
433
|
+
var StyledCustomInput2 = (0, import_styled_components8.styled)(import_design_system7.Input)`
|
|
123
434
|
width: 100%;
|
|
124
435
|
margin-right: 10px;
|
|
125
436
|
`;
|
|
126
|
-
var StyledInputWrapper2 = (0,
|
|
437
|
+
var StyledInputWrapper2 = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
127
438
|
display: flex;
|
|
128
439
|
`;
|
|
129
|
-
var StyledListWrapper = (0,
|
|
440
|
+
var StyledListWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
130
441
|
margin-bottom: 15px;
|
|
131
442
|
`;
|
|
132
|
-
var
|
|
443
|
+
var StyledLabel3 = import_styled_components8.styled.div`
|
|
133
444
|
font-size: 12px;
|
|
134
445
|
margin-bottom: 8px;
|
|
135
446
|
text-transform: capitalize;
|
|
136
447
|
`;
|
|
137
|
-
var
|
|
448
|
+
var StyledShowLabel2 = (0, import_styled_components8.styled)(StyledLabel3)`
|
|
138
449
|
line-height: 16px;
|
|
139
450
|
color: rgb(137, 138, 154);
|
|
140
451
|
font-weight: 300;
|
|
141
452
|
`;
|
|
142
|
-
var StyledShowWrapper = (0,
|
|
453
|
+
var StyledShowWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
143
454
|
margin-bottom: 35px;
|
|
144
455
|
`;
|
|
145
|
-
var StyledListItem =
|
|
456
|
+
var StyledListItem = import_styled_components8.styled.li`
|
|
146
457
|
margin-bottom: 5px;
|
|
147
458
|
`;
|
|
148
459
|
|
|
149
460
|
// src/components/StringList/SortableList/SortableList.tsx
|
|
150
|
-
var
|
|
461
|
+
var import_react10 = __toESM(require("react"), 1);
|
|
151
462
|
var import_core = require("@dnd-kit/core");
|
|
152
463
|
var import_sortable2 = require("@dnd-kit/sortable");
|
|
153
464
|
|
|
154
465
|
// src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
|
|
155
|
-
var
|
|
466
|
+
var import_react9 = __toESM(require("react"), 1);
|
|
156
467
|
var import_sortable = require("@dnd-kit/sortable");
|
|
157
|
-
var
|
|
468
|
+
var import_design_system8 = require("@adminjs/design-system");
|
|
158
469
|
|
|
159
470
|
// src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
|
|
160
|
-
var
|
|
471
|
+
var import_react8 = __toESM(require("react"), 1);
|
|
161
472
|
|
|
162
473
|
// src/components/StringList/SortableList/components/SortableItem/styles.ts
|
|
163
|
-
var
|
|
164
|
-
var StyledListItem2 =
|
|
474
|
+
var import_styled_components9 = require("@adminjs/design-system/styled-components");
|
|
475
|
+
var StyledListItem2 = import_styled_components9.styled.li`
|
|
165
476
|
display: flex;
|
|
166
477
|
justify-content: space-between;
|
|
167
478
|
align-items: center;
|
|
@@ -173,7 +484,7 @@ var StyledListItem2 = import_styled_components4.styled.li`
|
|
|
173
484
|
border-radius: 5px;
|
|
174
485
|
list-style: none;
|
|
175
486
|
`;
|
|
176
|
-
var StyledDragButton =
|
|
487
|
+
var StyledDragButton = import_styled_components9.styled.button`
|
|
177
488
|
padding: 3px;
|
|
178
489
|
margin-right: 15px;
|
|
179
490
|
cursor: move;
|
|
@@ -183,12 +494,12 @@ var StyledDragButton = import_styled_components4.styled.button`
|
|
|
183
494
|
|
|
184
495
|
// src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
|
|
185
496
|
var DragHandle = ({ context }) => {
|
|
186
|
-
const { attributes, listeners, ref } = (0,
|
|
187
|
-
return /* @__PURE__ */
|
|
497
|
+
const { attributes, listeners, ref } = (0, import_react8.useContext)(context);
|
|
498
|
+
return /* @__PURE__ */ import_react8.default.createElement(StyledDragButton, { ...attributes, ...listeners, ref }, /* @__PURE__ */ import_react8.default.createElement("svg", { viewBox: "0 0 20 20", width: "13" }, /* @__PURE__ */ import_react8.default.createElement("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" })));
|
|
188
499
|
};
|
|
189
500
|
|
|
190
501
|
// src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
|
|
191
|
-
var SortableItemContext = (0,
|
|
502
|
+
var SortableItemContext = (0, import_react9.createContext)({
|
|
192
503
|
attributes: {},
|
|
193
504
|
listeners: void 0,
|
|
194
505
|
ref() {
|
|
@@ -200,7 +511,7 @@ function SortableItem({
|
|
|
200
511
|
onDelete
|
|
201
512
|
}) {
|
|
202
513
|
const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef } = (0, import_sortable.useSortable)({ id });
|
|
203
|
-
const context = (0,
|
|
514
|
+
const context = (0, import_react9.useMemo)(
|
|
204
515
|
() => ({
|
|
205
516
|
attributes,
|
|
206
517
|
listeners,
|
|
@@ -211,21 +522,21 @@ function SortableItem({
|
|
|
211
522
|
const style = {
|
|
212
523
|
opacity: isDragging ? 0.4 : void 0
|
|
213
524
|
};
|
|
214
|
-
return /* @__PURE__ */
|
|
215
|
-
|
|
525
|
+
return /* @__PURE__ */ import_react9.default.createElement(SortableItemContext.Provider, { value: context }, /* @__PURE__ */ import_react9.default.createElement(StyledListItem2, { ref: setNodeRef, style }, /* @__PURE__ */ import_react9.default.createElement("div", null, /* @__PURE__ */ import_react9.default.createElement(DragHandle, { context: SortableItemContext }), children), /* @__PURE__ */ import_react9.default.createElement(
|
|
526
|
+
import_design_system8.Button,
|
|
216
527
|
{
|
|
217
528
|
variant: "outlined",
|
|
218
529
|
color: "danger",
|
|
219
530
|
size: "icon",
|
|
220
531
|
onClick: (e) => onDelete(e, id)
|
|
221
532
|
},
|
|
222
|
-
/* @__PURE__ */
|
|
533
|
+
/* @__PURE__ */ import_react9.default.createElement(import_design_system8.Icon, { icon: "X", color: "red" })
|
|
223
534
|
)));
|
|
224
535
|
}
|
|
225
536
|
|
|
226
537
|
// src/components/StringList/SortableList/styles.ts
|
|
227
|
-
var
|
|
228
|
-
var StyledListWrapper2 =
|
|
538
|
+
var import_styled_components10 = require("@adminjs/design-system/styled-components");
|
|
539
|
+
var StyledListWrapper2 = import_styled_components10.styled.ul`
|
|
229
540
|
display: flex;
|
|
230
541
|
flex-direction: column;
|
|
231
542
|
gap: 12px;
|
|
@@ -248,8 +559,8 @@ function SortableList({
|
|
|
248
559
|
onChange,
|
|
249
560
|
renderItem
|
|
250
561
|
}) {
|
|
251
|
-
const [active, setActive] = (0,
|
|
252
|
-
const activeItem = (0,
|
|
562
|
+
const [active, setActive] = (0, import_react10.useState)(null);
|
|
563
|
+
const activeItem = (0, import_react10.useMemo)(
|
|
253
564
|
() => items.find((item) => item.id === active?.id),
|
|
254
565
|
[active, items]
|
|
255
566
|
);
|
|
@@ -259,7 +570,7 @@ function SortableList({
|
|
|
259
570
|
coordinateGetter: import_sortable2.sortableKeyboardCoordinates
|
|
260
571
|
})
|
|
261
572
|
);
|
|
262
|
-
return /* @__PURE__ */
|
|
573
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
263
574
|
import_core.DndContext,
|
|
264
575
|
{
|
|
265
576
|
sensors,
|
|
@@ -278,8 +589,8 @@ function SortableList({
|
|
|
278
589
|
setActive(null);
|
|
279
590
|
}
|
|
280
591
|
},
|
|
281
|
-
/* @__PURE__ */
|
|
282
|
-
/* @__PURE__ */
|
|
592
|
+
/* @__PURE__ */ import_react10.default.createElement(import_sortable2.SortableContext, { items, strategy: import_sortable2.verticalListSortingStrategy }, /* @__PURE__ */ import_react10.default.createElement(StyledListWrapper2, { role: "application" }, items.map((item, index) => /* @__PURE__ */ import_react10.default.createElement(import_react10.Fragment, { key: index }, renderItem(item))))),
|
|
593
|
+
/* @__PURE__ */ import_react10.default.createElement(import_core.DragOverlay, { dropAnimation: dropAnimationConfig }, activeItem ? renderItem(activeItem) : null)
|
|
283
594
|
);
|
|
284
595
|
}
|
|
285
596
|
SortableList.Item = SortableItem;
|
|
@@ -296,28 +607,28 @@ var StringList = ({
|
|
|
296
607
|
}) => {
|
|
297
608
|
const stringListValue = record.params?.[property.path] ?? property.props.value ?? "";
|
|
298
609
|
const initialList = stringListValue ? prepareDataForList(stringListValue) : [];
|
|
299
|
-
const [inputValue, setInputValue] = (0,
|
|
300
|
-
const [list, setList] = (0,
|
|
610
|
+
const [inputValue, setInputValue] = (0, import_react11.useState)("");
|
|
611
|
+
const [list, setList] = (0, import_react11.useState)(initialList);
|
|
301
612
|
const serializedData = prepareDataForDatabase(list);
|
|
302
|
-
(0,
|
|
613
|
+
(0, import_react11.useEffect)(() => {
|
|
303
614
|
onChange(property.path, serializedData);
|
|
304
615
|
}, [serializedData]);
|
|
305
|
-
return /* @__PURE__ */
|
|
616
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_styled_components11.ThemeProvider, { theme: import_design_system9.theme }, /* @__PURE__ */ import_react11.default.createElement(StyledLabel3, { htmlFor: "custom" }, property.path), /* @__PURE__ */ import_react11.default.createElement(StyledWrapper, null, /* @__PURE__ */ import_react11.default.createElement(StyledListWrapper, null, /* @__PURE__ */ import_react11.default.createElement(
|
|
306
617
|
SortableList,
|
|
307
618
|
{
|
|
308
619
|
items: list,
|
|
309
620
|
onChange: setList,
|
|
310
|
-
renderItem: (item) => /* @__PURE__ */
|
|
621
|
+
renderItem: (item) => /* @__PURE__ */ import_react11.default.createElement(SortableList.Item, { id: item.id, onDelete: handleDeleteButton }, item.value)
|
|
311
622
|
}
|
|
312
|
-
)), /* @__PURE__ */
|
|
313
|
-
|
|
623
|
+
)), /* @__PURE__ */ import_react11.default.createElement(StyledInputWrapper2, null, /* @__PURE__ */ import_react11.default.createElement(
|
|
624
|
+
import_design_system9.Input,
|
|
314
625
|
{
|
|
315
626
|
id: "stringList",
|
|
316
627
|
name: property.path,
|
|
317
628
|
value: serializedData,
|
|
318
629
|
hidden: true
|
|
319
630
|
}
|
|
320
|
-
), /* @__PURE__ */
|
|
631
|
+
), /* @__PURE__ */ import_react11.default.createElement(
|
|
321
632
|
StyledCustomInput2,
|
|
322
633
|
{
|
|
323
634
|
id: "custom",
|
|
@@ -326,7 +637,7 @@ var StringList = ({
|
|
|
326
637
|
onChange: handleInput,
|
|
327
638
|
onKeyPress: handleEnterPress
|
|
328
639
|
}
|
|
329
|
-
), /* @__PURE__ */
|
|
640
|
+
), /* @__PURE__ */ import_react11.default.createElement(import_design_system9.Button, { variant: "outlined", onClick: handleAddButton }, "Add"))));
|
|
330
641
|
function handleInput(e) {
|
|
331
642
|
setInputValue(e.target.value);
|
|
332
643
|
}
|
|
@@ -363,205 +674,25 @@ var StringList = ({
|
|
|
363
674
|
var StringList_default = StringList;
|
|
364
675
|
|
|
365
676
|
// src/components/StringList/StringListShow.tsx
|
|
366
|
-
var
|
|
367
|
-
var
|
|
368
|
-
var
|
|
677
|
+
var import_react12 = __toESM(require("react"), 1);
|
|
678
|
+
var import_styled_components12 = require("styled-components");
|
|
679
|
+
var import_design_system10 = require("@adminjs/design-system");
|
|
369
680
|
var StringListShow = ({
|
|
370
681
|
property,
|
|
371
682
|
record,
|
|
372
683
|
stringListSeparator = separator
|
|
373
684
|
}) => {
|
|
374
|
-
return /* @__PURE__ */
|
|
685
|
+
return /* @__PURE__ */ import_react12.default.createElement(import_styled_components12.ThemeProvider, { theme: import_design_system10.theme }, /* @__PURE__ */ import_react12.default.createElement(StyledShowWrapper, null, /* @__PURE__ */ import_react12.default.createElement(StyledShowLabel2, null, property.path), record.params.facts && /* @__PURE__ */ import_react12.default.createElement("ul", null, record.params.facts.split(stringListSeparator).map((item, index) => /* @__PURE__ */ import_react12.default.createElement(StyledListItem, { key: index }, `- ${item}`)))));
|
|
375
686
|
};
|
|
376
687
|
var StringListShow_default = StringListShow;
|
|
377
|
-
|
|
378
|
-
// src/components/Editor/Editor.jsx
|
|
379
|
-
var import_react7 = __toESM(require("react"), 1);
|
|
380
|
-
var import_styled_components9 = require("styled-components");
|
|
381
|
-
var import_editorjs = __toESM(require("@editorjs/editorjs"), 1);
|
|
382
|
-
var import_design_system8 = require("@adminjs/design-system");
|
|
383
|
-
|
|
384
|
-
// src/components/Editor/styles.ts
|
|
385
|
-
var import_design_system7 = require("@adminjs/design-system");
|
|
386
|
-
var import_styled_components8 = require("@adminjs/design-system/styled-components");
|
|
387
|
-
var StyledLabel3 = import_styled_components8.styled.div`
|
|
388
|
-
font-size: 12px;
|
|
389
|
-
margin-bottom: 8px;
|
|
390
|
-
text-transform: capitalize;
|
|
391
|
-
`;
|
|
392
|
-
var StyledShowLabel2 = (0, import_styled_components8.styled)(StyledLabel3)`
|
|
393
|
-
color: rgb(137, 138, 154);
|
|
394
|
-
font-weight: 300;
|
|
395
|
-
`;
|
|
396
|
-
var StyledEditorWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
397
|
-
padding: 12px;
|
|
398
|
-
margin-bottom: 24px;
|
|
399
|
-
border: 1px solid rgb(187, 195, 203);
|
|
400
|
-
`;
|
|
401
|
-
var StyledEditorShowWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
|
|
402
|
-
margin-bottom: 24px;
|
|
403
|
-
|
|
404
|
-
h1,
|
|
405
|
-
h2,
|
|
406
|
-
h3 {
|
|
407
|
-
margin-bottom: 5px;
|
|
408
|
-
font-weight: bold;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
h1 {
|
|
412
|
-
font-size: 18px;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
h2 {
|
|
416
|
-
font-size: 16px;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
h3 {
|
|
420
|
-
font-size: 14px;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
p {
|
|
424
|
-
margin-bottom: 8px;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
ol,
|
|
428
|
-
ul {
|
|
429
|
-
margin-left: 20px;
|
|
430
|
-
margin-bottom: 8px;
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
ol {
|
|
434
|
-
list-style: auto;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
ul {
|
|
438
|
-
list-style: inherit;
|
|
439
|
-
}
|
|
440
|
-
`;
|
|
441
|
-
var StyledEditor = import_styled_components8.styled.div`
|
|
442
|
-
.cdx-block,
|
|
443
|
-
.ce-header {
|
|
444
|
-
padding-left: 58px;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
.cdx-list {
|
|
448
|
-
padding-left: 85px;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
.ce-block__content {
|
|
452
|
-
width: 100%;
|
|
453
|
-
max-width: none;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
.ce-toolbar__content {
|
|
457
|
-
max-width: none;
|
|
458
|
-
left: 0;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
.ce-toolbar__actions {
|
|
462
|
-
left: 0;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
h1.ce-header {
|
|
466
|
-
font-size: 22px;
|
|
467
|
-
font-weight: bold;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
h2.ce-header {
|
|
471
|
-
font-size: 20px;
|
|
472
|
-
font-weight: bold;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
h3.ce-header {
|
|
476
|
-
font-size: 18px;
|
|
477
|
-
font-weight: bold;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
h4.ce-header {
|
|
481
|
-
font-size: 16px;
|
|
482
|
-
font-weight: bold;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
h5.ce-header {
|
|
486
|
-
font-size: 15px;
|
|
487
|
-
font-weight: bold;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
h6.ce-header {
|
|
491
|
-
font-size: 14px;
|
|
492
|
-
font-weight: bold;
|
|
493
|
-
}
|
|
494
|
-
`;
|
|
495
|
-
|
|
496
|
-
// src/components/Editor/config.ts
|
|
497
|
-
var import_header = __toESM(require("@editorjs/header"), 1);
|
|
498
|
-
var import_paragraph = __toESM(require("@editorjs/paragraph"), 1);
|
|
499
|
-
var import_list = __toESM(require("@editorjs/list"), 1);
|
|
500
|
-
var EDITOR_TOOLS = {
|
|
501
|
-
paragraph: {
|
|
502
|
-
class: import_paragraph.default,
|
|
503
|
-
inlineToolbar: true
|
|
504
|
-
},
|
|
505
|
-
list: import_list.default,
|
|
506
|
-
header: import_header.default
|
|
507
|
-
};
|
|
508
|
-
|
|
509
|
-
// src/components/Editor/Editor.jsx
|
|
510
|
-
var Editor = ({ property, record, onChangeAdmin, editorId }) => {
|
|
511
|
-
const [jsonData, setJsonData] = (0, import_react7.useState)();
|
|
512
|
-
const isSavedData = Boolean(record.params[property.path]);
|
|
513
|
-
const ref = (0, import_react7.useRef)();
|
|
514
|
-
(0, import_react7.useEffect)(() => {
|
|
515
|
-
onChangeAdmin(property.path, jsonData);
|
|
516
|
-
}, [jsonData]);
|
|
517
|
-
(0, import_react7.useEffect)(() => {
|
|
518
|
-
if (!ref.current) {
|
|
519
|
-
const editor = new import_editorjs.default({
|
|
520
|
-
holder: editorId,
|
|
521
|
-
tools: EDITOR_TOOLS,
|
|
522
|
-
data: isSavedData ? JSON.parse(record.params[property.path]) : "",
|
|
523
|
-
async onChange(api, event) {
|
|
524
|
-
const data = await api.saver.save();
|
|
525
|
-
setJsonData(JSON.stringify(data));
|
|
526
|
-
}
|
|
527
|
-
});
|
|
528
|
-
ref.current = editor;
|
|
529
|
-
}
|
|
530
|
-
return () => {
|
|
531
|
-
ref?.current?.destroy?.();
|
|
532
|
-
};
|
|
533
|
-
}, []);
|
|
534
|
-
return /* @__PURE__ */ import_react7.default.createElement(import_styled_components9.ThemeProvider, { theme: import_design_system8.theme }, /* @__PURE__ */ import_react7.default.createElement(StyledLabel3, null, property.path), /* @__PURE__ */ import_react7.default.createElement(StyledEditorWrapper, null, /* @__PURE__ */ import_react7.default.createElement(StyledEditor, { id: editorId })));
|
|
535
|
-
};
|
|
536
|
-
var Editor_default = Editor;
|
|
537
|
-
|
|
538
|
-
// src/components/Editor/EditorShow.jsx
|
|
539
|
-
var import_react8 = __toESM(require("react"), 1);
|
|
540
|
-
var import_styled_components10 = require("styled-components");
|
|
541
|
-
var import_design_system9 = require("@adminjs/design-system");
|
|
542
|
-
|
|
543
|
-
// src/utils/parseHtml.ts
|
|
544
|
-
var import_editorjs_html = __toESM(require("editorjs-html"), 1);
|
|
545
|
-
var parseHtml = (jsonData) => {
|
|
546
|
-
const edjsParser = (0, import_editorjs_html.default)();
|
|
547
|
-
try {
|
|
548
|
-
const data = edjsParser.parse(JSON.parse(String(jsonData)));
|
|
549
|
-
return String(data).replace(/>,</g, "><");
|
|
550
|
-
} catch (e) {
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
|
-
};
|
|
554
|
-
|
|
555
|
-
// src/components/Editor/EditorShow.jsx
|
|
556
|
-
var EditorShow = ({ property, record }) => {
|
|
557
|
-
const htmlContent = parseHtml(record.params[property.path]);
|
|
558
|
-
return /* @__PURE__ */ import_react8.default.createElement(import_styled_components10.ThemeProvider, { theme: import_design_system9.theme }, /* @__PURE__ */ import_react8.default.createElement(StyledEditorShowWrapper, null, /* @__PURE__ */ import_react8.default.createElement(StyledShowLabel2, null, property.path), htmlContent && /* @__PURE__ */ import_react8.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
|
|
559
|
-
};
|
|
560
|
-
var EditorShow_default = EditorShow;
|
|
561
688
|
// Annotate the CommonJS export names for ESM import in node:
|
|
562
689
|
0 && (module.exports = {
|
|
690
|
+
ColorStatusEdit,
|
|
691
|
+
ColorStatusList,
|
|
692
|
+
ColorStatusShow,
|
|
563
693
|
CustomSlug,
|
|
564
694
|
Editor,
|
|
695
|
+
EditorList,
|
|
565
696
|
EditorShow,
|
|
566
697
|
StringList,
|
|
567
698
|
StringListShow
|