nuudel-core 0.1.69 → 0.1.70

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.
@@ -1,6 +1,38 @@
1
+ import React from 'react';
2
+ import { Permission } from 'nuudel-utils';
3
+ import { IImage, ICurrentUser } from '../../common/Interfaces';
1
4
  interface IProps {
2
- data?: string;
5
+ id?: string;
6
+ post_type?: string;
7
+ editdata?: IPost;
3
8
  disabled?: boolean;
9
+ onClose?(): any;
10
+ onSubmit?(data: any): any;
11
+ permission?: Permission;
12
+ user?: ICurrentUser;
13
+ IsDlg?: boolean;
4
14
  }
5
- declare const Editor: (props: IProps) => JSX.Element;
15
+ export interface IPost {
16
+ title: string;
17
+ date: string;
18
+ slug: string;
19
+ tags: string[];
20
+ content: string;
21
+ _author: string;
22
+ visibility?: boolean;
23
+ allowcomment?: boolean;
24
+ image?: IImage;
25
+ }
26
+ export declare const initialValues: {
27
+ title: string;
28
+ date: string;
29
+ slug: string;
30
+ tags: any[];
31
+ content: string;
32
+ _author: string;
33
+ visibility: boolean;
34
+ allowcomment: boolean;
35
+ image: any;
36
+ };
37
+ declare const Editor: React.FC<IProps>;
6
38
  export default Editor;
@@ -1,14 +1,96 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.initialValues = void 0;
3
7
  const jsx_runtime_1 = require("react/jsx-runtime");
4
8
  const react_1 = require("react");
5
9
  const i18n_1 = require("../../loc/i18n");
6
10
  const uploadAdapter_1 = require("./uploadAdapter");
11
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
12
+ const nuudel_utils_1 = require("nuudel-utils");
13
+ const components_1 = require("../../components");
14
+ const react_hooks_1 = require("@apollo/react-hooks");
15
+ const router_1 = require("next/router");
16
+ const Delete_1 = __importDefault(require("@material-ui/icons/Delete"));
17
+ exports.initialValues = {
18
+ title: '',
19
+ date: (0, nuudel_utils_1.dateToISOString)(Date.now()),
20
+ slug: '',
21
+ tags: [],
22
+ content: '',
23
+ _author: '',
24
+ visibility: true,
25
+ allowcomment: true,
26
+ image: null,
27
+ };
7
28
  function CustomUploadAdapterPlugin(editor) {
8
29
  editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
9
30
  return new uploadAdapter_1.uploadAdapter(loader);
10
31
  };
11
32
  }
33
+ const _columns = [
34
+ '_id',
35
+ 'title',
36
+ 'date',
37
+ 'slug',
38
+ 'tags',
39
+ 'content',
40
+ '_author',
41
+ 'visibility',
42
+ 'allowcomment',
43
+ 'image',
44
+ '_createdby',
45
+ '_modifiedby',
46
+ 'createdAt',
47
+ 'updatedAt',
48
+ ];
49
+ const deleteMutation = (listname) => {
50
+ listname = (0, nuudel_utils_1.capitalizeFirstLetter)(listname);
51
+ return `mutation Delete${listname}($id: ObjectId!) {
52
+ delete${listname}(_id: $id) {
53
+ _id
54
+ }
55
+ }`;
56
+ };
57
+ const getQuery = (listname, columns = _columns) => {
58
+ listname = (0, nuudel_utils_1.capitalizeFirstLetter)(listname);
59
+ return `query Get${listname}($id: ObjectId!) {
60
+ get${listname}(_id: $id) {
61
+ ${columns.join(', ')}
62
+ }
63
+ }`;
64
+ };
65
+ const buildMutation = (listname, id, columns = _columns) => {
66
+ listname = (0, nuudel_utils_1.capitalizeFirstLetter)(listname);
67
+ return !id
68
+ ? `mutation Add${listname}($data: ${listname}Input) {
69
+ add${listname}(inputPost: $data) {
70
+ ${columns.join(', ')}
71
+ }
72
+ }`
73
+ : `mutation Update${listname}(
74
+ $_id: ObjectId!,
75
+ $slug: String!,
76
+ $title: String,
77
+ $date: DateTime,
78
+ $tags: [String!],
79
+ $content: String, $allowcomment: Boolean, $image: ImageInput
80
+ ) {
81
+ update${listname}(
82
+ _id: $_id,
83
+ slug: $slug,
84
+ title: $title,
85
+ date: $date,
86
+ tags: $tags,
87
+ content: $content,
88
+ visibility: $visibility, allowcomment: $allowcomment, image: $image
89
+ ) {
90
+ ${columns.join(', ')}
91
+ }
92
+ }`;
93
+ };
12
94
  const custom_config = {
13
95
  extraPlugins: [CustomUploadAdapterPlugin],
14
96
  toolbar: {
@@ -34,27 +116,149 @@ const custom_config = {
34
116
  },
35
117
  };
36
118
  const Editor = (props) => {
119
+ const router = (0, router_1.useRouter)();
120
+ const { post_type = 'Post', editdata = exports.initialValues } = props;
37
121
  const editorRef = (0, react_1.useRef)();
38
122
  const [editorLoaded, setEditorLoaded] = (0, react_1.useState)(false);
123
+ const [loading, setLoading] = (0, react_1.useState)(false);
39
124
  const { CKEditor, ClassicEditor } = editorRef.current || {};
125
+ const [formValues, setFormValues] = (0, react_1.useState)(editdata);
126
+ const [data, setData] = (0, react_1.useState)(editdata.content || '');
127
+ const [alert, setAlert] = (0, react_1.useState)(false);
128
+ const [getItem] = (0, react_hooks_1.useLazyQuery)((0, graphql_tag_1.default) `
129
+ ${getQuery(post_type)}
130
+ `, {
131
+ onCompleted: (data) => {
132
+ if (data) {
133
+ let newDate = getUsedFields(data[`get${(0, nuudel_utils_1.capitalizeFirstLetter)(post_type)}`]);
134
+ setFormValues(newDate);
135
+ setData(newDate.content || '');
136
+ }
137
+ },
138
+ });
139
+ const [deletePostMutation] = (0, react_hooks_1.useMutation)((0, graphql_tag_1.default) `
140
+ ${deleteMutation(post_type)}
141
+ `, {
142
+ onCompleted: (data) => {
143
+ messageMutation({
144
+ variables: {
145
+ msg: `Delete a ${post_type} successfully`,
146
+ type: 'success',
147
+ },
148
+ });
149
+ },
150
+ onError: (err) => {
151
+ messageMutation({
152
+ variables: { msg: err.message, type: 'error' },
153
+ });
154
+ },
155
+ });
40
156
  (0, react_1.useEffect)(() => {
41
157
  editorRef.current = {
42
158
  CKEditor: require('@ckeditor/ckeditor5-react').CKEditor,
43
159
  ClassicEditor: require('@ckeditor/ckeditor5-build-classic'),
44
160
  };
161
+ if (!props.id && !props.editdata) {
162
+ getItem({
163
+ variables: {
164
+ id: props.id,
165
+ },
166
+ });
167
+ }
45
168
  setEditorLoaded(true);
46
169
  }, []);
47
- const [data, setData] = (0, react_1.useState)(props.data || '');
48
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: editorLoaded ? ((0, jsx_runtime_1.jsx)(CKEditor, { editor: ClassicEditor, config: custom_config, disabled: props.disabled === true, data: data, onReady: (editor) => {
49
- console.log('Editor is ready to use!', editor);
50
- }, onChange: (event, editor) => {
51
- const data = editor.getData();
52
- setData(data);
53
- }, onBlur: (event, editor) => {
54
- console.log('Blur.', editor);
55
- }, onFocus: (event, editor) => {
56
- console.log('Focus.', editor);
57
- } }, void 0)) : ((0, jsx_runtime_1.jsx)("p", { children: (0, i18n_1.t)('Loading') }, void 0)) }, void 0));
170
+ const [createPost] = (0, react_hooks_1.useMutation)((0, graphql_tag_1.default) `
171
+ ${buildMutation(post_type, props.id)}
172
+ `, {
173
+ onCompleted: (data) => {
174
+ messageMutation({
175
+ variables: { msg: 'Item saved successfully', type: 'success' },
176
+ });
177
+ setTimeout(() => {
178
+ if (props.onSubmit) {
179
+ props.onSubmit(data);
180
+ }
181
+ if (props.IsDlg === true) {
182
+ (0, nuudel_utils_1.closeDialog)(true);
183
+ return;
184
+ }
185
+ router.push('/lists/' + post_type);
186
+ }, 500);
187
+ },
188
+ });
189
+ const doSave = async (variables = {}) => {
190
+ if (formValues) {
191
+ createPost({
192
+ variables: !props.id
193
+ ? { data: getUsedFields(formValues) }
194
+ : Object.assign(Object.assign({}, getUsedFields(formValues)), { _id: props.id }),
195
+ })
196
+ .then((data) => { })
197
+ .catch((err) => {
198
+ messageMutation({
199
+ variables: { msg: err.message, type: 'error' },
200
+ });
201
+ });
202
+ }
203
+ };
204
+ const setChange = (name, value, option) => {
205
+ setFormValues(Object.assign(Object.assign({}, formValues), { [name]: !option ? value : option }));
206
+ };
207
+ const getUsedFields = (data) => {
208
+ const newData = {
209
+ title: data.title,
210
+ date: data.date ? data.date : (0, nuudel_utils_1.dateToISOString)(new Date()),
211
+ slug: data.slug,
212
+ tags: data.tags,
213
+ content: data || data.content,
214
+ _author: data._author,
215
+ visibility: data.visibility,
216
+ allowcomment: data.allowcomment,
217
+ image: data.image,
218
+ };
219
+ return newData;
220
+ };
221
+ const [messageMutation] = (0, react_hooks_1.useMutation)(components_1.TOGGLE_SNACKBAR_MUTATION);
222
+ const doClose = (refresh = false) => {
223
+ if (props.onClose) {
224
+ props.onClose();
225
+ }
226
+ else if (props.IsDlg === true) {
227
+ (0, nuudel_utils_1.closeDialog)(refresh);
228
+ }
229
+ else {
230
+ router.back();
231
+ }
232
+ };
233
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: editorLoaded ? ((0, jsx_runtime_1.jsxs)(components_1.Grid, Object.assign({ container: true, spacing: 4 }, { children: [(0, jsx_runtime_1.jsxs)(components_1.Grid, Object.assign({ item: true, xs: 12, sm: 8, md: 9 }, { children: [(0, jsx_runtime_1.jsx)(components_1.MessageBox, { title: (0, i18n_1.t)('Delete'), description: (0, i18n_1.t)('AreYouSureToRemove'), show: alert, onSubmit: () => {
234
+ setAlert(false);
235
+ setLoading(true);
236
+ try {
237
+ deletePostMutation({
238
+ variables: { id: props.id },
239
+ });
240
+ }
241
+ catch (_a) { }
242
+ setLoading(false);
243
+ doClose(true);
244
+ }, onClose: () => {
245
+ setAlert(false);
246
+ } }, void 0), (0, jsx_runtime_1.jsx)(components_1.TextField, { label: (0, i18n_1.t)('Title'), placeholder: (0, i18n_1.t)('Title'), value: formValues.title, type: "text", required: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal", onChange: (e) => { var _a; return setChange('title', (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value); } }, void 0), (0, jsx_runtime_1.jsx)(CKEditor, { editor: ClassicEditor, config: custom_config, disabled: props.disabled === true, data: data, onReady: (editor) => {
247
+ console.log('Editor is ready to use!', editor);
248
+ }, onChange: (event, editor) => {
249
+ const data = editor.getData();
250
+ setData(data);
251
+ }, onBlur: (event, editor) => {
252
+ console.log('Blur.', editor);
253
+ }, onFocus: (event, editor) => {
254
+ console.log('Focus.', editor);
255
+ } }, void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(components_1.Grid, Object.assign({ item: true, xs: 12, sm: 4, md: 3 }, { children: [(0, jsx_runtime_1.jsxs)(components_1.Grid, Object.assign({ container: true, spacing: 3 }, { children: [(0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.TextField, { label: (0, i18n_1.t)('slug'), placeholder: (0, i18n_1.t)('slug'), value: formValues.slug, type: "text", required: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal", onChange: (e) => { var _a; return setChange('slug', (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value); } }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.TextField, { label: (0, i18n_1.t)('Date'), type: "datetime-local", placeholder: (0, i18n_1.t)('Date'), value: (0, nuudel_utils_1.dateToString)(formValues.date), fullWidth: true, variant: "outlined", margin: "normal", onChange: (e) => setChange('expiredDate', (0, nuudel_utils_1.dateToISOString)(e.target.value)) }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.TagsInput, { value: formValues.tags, label: (0, i18n_1.t)('Tags'), placeholder: (0, i18n_1.t)('Tags'), fullWidth: true, variant: "outlined", margin: "normal", onChange: (chips) => {
256
+ if (chips && chips instanceof Array) {
257
+ setChange('tags', chips);
258
+ }
259
+ } }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.TextField, { label: (0, i18n_1.t)('Author'), placeholder: (0, i18n_1.t)('Author'), defaultValue: formValues._author, type: "text", disabled: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal" }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.Switch, { checked: formValues.allowcomment === true, label: (0, i18n_1.t)('allowcomment'), defaultChecked: exports.initialValues.allowcomment, onChange: (e) => setChange('allowcomment', e.target.checked) }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.Switch, { checked: formValues.visibility === true, label: (0, i18n_1.t)('visibility'), defaultChecked: exports.initialValues.visibility, onChange: (e) => setChange('visibility', e.target.checked) }, void 0) }), void 0), (0, jsx_runtime_1.jsx)(components_1.Grid, Object.assign({ item: true, xs: 12 }, { children: (0, jsx_runtime_1.jsx)(components_1.Upload, { uploaded: formValues.image || exports.initialValues.image, label: (0, i18n_1.t)('image'), multiple: false, onChange: (value) => setChange('image', value) }, void 0) }), void 0)] }), void 0), props.id && ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(components_1.Button, Object.assign({ startIcon: (0, jsx_runtime_1.jsx)(Delete_1.default, {}, void 0), variant: "contained", color: "secondary", disabled: alert, onClick: () => {
260
+ setAlert(true);
261
+ } }, { children: (0, i18n_1.t)('Delete') }), void 0) }, void 0)), (0, jsx_runtime_1.jsx)(components_1.Button, Object.assign({ style: {}, disabled: props.disabled, color: "primary", onClick: () => doSave() }, { children: (0, i18n_1.t)('Save') }), void 0)] }), void 0)] }), void 0)) : ((0, jsx_runtime_1.jsx)("p", { children: (0, i18n_1.t)('Loading') }, void 0)) }, void 0));
58
262
  };
59
263
  exports.default = Editor;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0VkaXRvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXNFO0FBQ3RFLHlDQUFtQztBQUNuQyxtREFBZ0Q7QUFVaEQsU0FBUyx5QkFBeUIsQ0FBQyxNQUFNO0lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwRSxPQUFPLElBQUksNkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7SUFDekMsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsU0FBUztZQUNULEdBQUc7WUFDSCxNQUFNO1lBQ04sUUFBUTtZQUNSLE1BQU07WUFDTixjQUFjO1lBQ2QsY0FBYztZQUNkLEdBQUc7WUFDSCxZQUFZO1lBQ1osYUFBYTtZQUNiLEdBQUc7WUFDSCxhQUFhO1lBQ2IsTUFBTTtZQUNOLE1BQU07U0FDUDtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsY0FBYyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMvRDtDQUNGLENBQUM7QUFHRixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9CLE1BQU0sU0FBUyxHQUFRLElBQUEsY0FBTSxHQUFFLENBQUM7SUFDaEMsTUFBTSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUU1RCxJQUFBLGlCQUFTLEVBQUMsR0FBRyxFQUFFO1FBQ2IsU0FBUyxDQUFDLE9BQU8sR0FBRztZQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUMsUUFBUTtZQUN2RCxhQUFhLEVBQUUsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO1NBQzVELENBQUM7UUFDRixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVuRCxPQUFPLENBQ0wsMkRBQ0csWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNkLHVCQUFDLFFBQVEsSUFDUCxNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQ2pDLElBQUksRUFBRSxJQUFJLEVBQ1YsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRWxCLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQyxFQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxFQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxXQUNELENBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FDRix3Q0FBSSxJQUFBLFFBQUMsRUFBQyxTQUFTLENBQUMsV0FBSyxDQUN0QixXQUNBLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGtCQUFlLE1BQU0sQ0FBQyJ9
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0VkaXRvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLGlDQUFzRTtBQUN0RSx5Q0FBbUM7QUFDbkMsbURBQWdEO0FBQ2hELDhEQUE4QjtBQUM5QiwrQ0FNc0I7QUFDdEIsaURBVTBCO0FBQzFCLHFEQUFnRTtBQUVoRSx3Q0FBd0M7QUFDeEMsdUVBQW1EO0FBOEJ0QyxRQUFBLGFBQWEsR0FBRztJQUMzQixLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxJQUFBLDhCQUFlLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLEVBQUU7SUFDUixPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUk7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsS0FBSyxFQUFFLElBQUk7Q0FFWixDQUFDO0FBRUYsU0FBUyx5QkFBeUIsQ0FBQyxNQUFNO0lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwRSxPQUFPLElBQUksNkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUc7SUFDZixLQUFLO0lBQ0wsT0FBTztJQUNQLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLFNBQVM7SUFDVCxTQUFTO0lBQ1QsWUFBWTtJQUNaLGNBQWM7SUFDZCxPQUFPO0lBQ1AsWUFBWTtJQUNaLGFBQWE7SUFDYixXQUFXO0lBQ1gsV0FBVztDQUVaLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUMx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
@@ -1,6 +1,38 @@
1
+ import React from 'react';
2
+ import { Permission } from 'nuudel-utils';
3
+ import { IImage, ICurrentUser } from '../../common/Interfaces';
1
4
  interface IProps {
2
- data?: string;
5
+ id?: string;
6
+ post_type?: string;
7
+ editdata?: IPost;
3
8
  disabled?: boolean;
9
+ onClose?(): any;
10
+ onSubmit?(data: any): any;
11
+ permission?: Permission;
12
+ user?: ICurrentUser;
13
+ IsDlg?: boolean;
4
14
  }
5
- declare const Editor: (props: IProps) => JSX.Element;
15
+ export interface IPost {
16
+ title: string;
17
+ date: string;
18
+ slug: string;
19
+ tags: string[];
20
+ content: string;
21
+ _author: string;
22
+ visibility?: boolean;
23
+ allowcomment?: boolean;
24
+ image?: IImage;
25
+ }
26
+ export declare const initialValues: {
27
+ title: string;
28
+ date: string;
29
+ slug: string;
30
+ tags: any[];
31
+ content: string;
32
+ _author: string;
33
+ visibility: boolean;
34
+ allowcomment: boolean;
35
+ image: any;
36
+ };
37
+ declare const Editor: React.FC<IProps>;
6
38
  export default Editor;
@@ -1,12 +1,90 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useRef, useState, useEffect } from 'react';
3
3
  import { t } from '../../loc/i18n';
4
4
  import { uploadAdapter } from './uploadAdapter';
5
+ import gql from 'graphql-tag';
6
+ import { capitalizeFirstLetter, dateToISOString, closeDialog, dateToString, } from 'nuudel-utils';
7
+ import { Grid, Button, MessageBox, TextField, TOGGLE_SNACKBAR_MUTATION, TagsInput, Switch, Upload, } from '../../components';
8
+ import { useMutation, useLazyQuery } from '@apollo/react-hooks';
9
+ import { useRouter } from 'next/router';
10
+ import DeleteIcon from '@material-ui/icons/Delete';
11
+ export const initialValues = {
12
+ title: '',
13
+ date: dateToISOString(Date.now()),
14
+ slug: '',
15
+ tags: [],
16
+ content: '',
17
+ _author: '',
18
+ visibility: true,
19
+ allowcomment: true,
20
+ image: null,
21
+ };
5
22
  function CustomUploadAdapterPlugin(editor) {
6
23
  editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
7
24
  return new uploadAdapter(loader);
8
25
  };
9
26
  }
27
+ const _columns = [
28
+ '_id',
29
+ 'title',
30
+ 'date',
31
+ 'slug',
32
+ 'tags',
33
+ 'content',
34
+ '_author',
35
+ 'visibility',
36
+ 'allowcomment',
37
+ 'image',
38
+ '_createdby',
39
+ '_modifiedby',
40
+ 'createdAt',
41
+ 'updatedAt',
42
+ ];
43
+ const deleteMutation = (listname) => {
44
+ listname = capitalizeFirstLetter(listname);
45
+ return `mutation Delete${listname}($id: ObjectId!) {
46
+ delete${listname}(_id: $id) {
47
+ _id
48
+ }
49
+ }`;
50
+ };
51
+ const getQuery = (listname, columns = _columns) => {
52
+ listname = capitalizeFirstLetter(listname);
53
+ return `query Get${listname}($id: ObjectId!) {
54
+ get${listname}(_id: $id) {
55
+ ${columns.join(', ')}
56
+ }
57
+ }`;
58
+ };
59
+ const buildMutation = (listname, id, columns = _columns) => {
60
+ listname = capitalizeFirstLetter(listname);
61
+ return !id
62
+ ? `mutation Add${listname}($data: ${listname}Input) {
63
+ add${listname}(inputPost: $data) {
64
+ ${columns.join(', ')}
65
+ }
66
+ }`
67
+ : `mutation Update${listname}(
68
+ $_id: ObjectId!,
69
+ $slug: String!,
70
+ $title: String,
71
+ $date: DateTime,
72
+ $tags: [String!],
73
+ $content: String, $allowcomment: Boolean, $image: ImageInput
74
+ ) {
75
+ update${listname}(
76
+ _id: $_id,
77
+ slug: $slug,
78
+ title: $title,
79
+ date: $date,
80
+ tags: $tags,
81
+ content: $content,
82
+ visibility: $visibility, allowcomment: $allowcomment, image: $image
83
+ ) {
84
+ ${columns.join(', ')}
85
+ }
86
+ }`;
87
+ };
10
88
  const custom_config = {
11
89
  extraPlugins: [CustomUploadAdapterPlugin],
12
90
  toolbar: {
@@ -32,27 +110,149 @@ const custom_config = {
32
110
  },
33
111
  };
34
112
  const Editor = (props) => {
113
+ const router = useRouter();
114
+ const { post_type = 'Post', editdata = initialValues } = props;
35
115
  const editorRef = useRef();
36
116
  const [editorLoaded, setEditorLoaded] = useState(false);
117
+ const [loading, setLoading] = useState(false);
37
118
  const { CKEditor, ClassicEditor } = editorRef.current || {};
119
+ const [formValues, setFormValues] = useState(editdata);
120
+ const [data, setData] = useState(editdata.content || '');
121
+ const [alert, setAlert] = useState(false);
122
+ const [getItem] = useLazyQuery(gql `
123
+ ${getQuery(post_type)}
124
+ `, {
125
+ onCompleted: (data) => {
126
+ if (data) {
127
+ let newDate = getUsedFields(data[`get${capitalizeFirstLetter(post_type)}`]);
128
+ setFormValues(newDate);
129
+ setData(newDate.content || '');
130
+ }
131
+ },
132
+ });
133
+ const [deletePostMutation] = useMutation(gql `
134
+ ${deleteMutation(post_type)}
135
+ `, {
136
+ onCompleted: (data) => {
137
+ messageMutation({
138
+ variables: {
139
+ msg: `Delete a ${post_type} successfully`,
140
+ type: 'success',
141
+ },
142
+ });
143
+ },
144
+ onError: (err) => {
145
+ messageMutation({
146
+ variables: { msg: err.message, type: 'error' },
147
+ });
148
+ },
149
+ });
38
150
  useEffect(() => {
39
151
  editorRef.current = {
40
152
  CKEditor: require('@ckeditor/ckeditor5-react').CKEditor,
41
153
  ClassicEditor: require('@ckeditor/ckeditor5-build-classic'),
42
154
  };
155
+ if (!props.id && !props.editdata) {
156
+ getItem({
157
+ variables: {
158
+ id: props.id,
159
+ },
160
+ });
161
+ }
43
162
  setEditorLoaded(true);
44
163
  }, []);
45
- const [data, setData] = useState(props.data || '');
46
- return (_jsx(_Fragment, { children: editorLoaded ? (_jsx(CKEditor, { editor: ClassicEditor, config: custom_config, disabled: props.disabled === true, data: data, onReady: (editor) => {
47
- console.log('Editor is ready to use!', editor);
48
- }, onChange: (event, editor) => {
49
- const data = editor.getData();
50
- setData(data);
51
- }, onBlur: (event, editor) => {
52
- console.log('Blur.', editor);
53
- }, onFocus: (event, editor) => {
54
- console.log('Focus.', editor);
55
- } }, void 0)) : (_jsx("p", { children: t('Loading') }, void 0)) }, void 0));
164
+ const [createPost] = useMutation(gql `
165
+ ${buildMutation(post_type, props.id)}
166
+ `, {
167
+ onCompleted: (data) => {
168
+ messageMutation({
169
+ variables: { msg: 'Item saved successfully', type: 'success' },
170
+ });
171
+ setTimeout(() => {
172
+ if (props.onSubmit) {
173
+ props.onSubmit(data);
174
+ }
175
+ if (props.IsDlg === true) {
176
+ closeDialog(true);
177
+ return;
178
+ }
179
+ router.push('/lists/' + post_type);
180
+ }, 500);
181
+ },
182
+ });
183
+ const doSave = async (variables = {}) => {
184
+ if (formValues) {
185
+ createPost({
186
+ variables: !props.id
187
+ ? { data: getUsedFields(formValues) }
188
+ : { ...getUsedFields(formValues), _id: props.id },
189
+ })
190
+ .then((data) => { })
191
+ .catch((err) => {
192
+ messageMutation({
193
+ variables: { msg: err.message, type: 'error' },
194
+ });
195
+ });
196
+ }
197
+ };
198
+ const setChange = (name, value, option) => {
199
+ setFormValues({ ...formValues, [name]: !option ? value : option });
200
+ };
201
+ const getUsedFields = (data) => {
202
+ const newData = {
203
+ title: data.title,
204
+ date: data.date ? data.date : dateToISOString(new Date()),
205
+ slug: data.slug,
206
+ tags: data.tags,
207
+ content: data || data.content,
208
+ _author: data._author,
209
+ visibility: data.visibility,
210
+ allowcomment: data.allowcomment,
211
+ image: data.image,
212
+ };
213
+ return newData;
214
+ };
215
+ const [messageMutation] = useMutation(TOGGLE_SNACKBAR_MUTATION);
216
+ const doClose = (refresh = false) => {
217
+ if (props.onClose) {
218
+ props.onClose();
219
+ }
220
+ else if (props.IsDlg === true) {
221
+ closeDialog(refresh);
222
+ }
223
+ else {
224
+ router.back();
225
+ }
226
+ };
227
+ return (_jsx(_Fragment, { children: editorLoaded ? (_jsxs(Grid, { container: true, spacing: 4, children: [_jsxs(Grid, { item: true, xs: 12, sm: 8, md: 9, children: [_jsx(MessageBox, { title: t('Delete'), description: t('AreYouSureToRemove'), show: alert, onSubmit: () => {
228
+ setAlert(false);
229
+ setLoading(true);
230
+ try {
231
+ deletePostMutation({
232
+ variables: { id: props.id },
233
+ });
234
+ }
235
+ catch { }
236
+ setLoading(false);
237
+ doClose(true);
238
+ }, onClose: () => {
239
+ setAlert(false);
240
+ } }, void 0), _jsx(TextField, { label: t('Title'), placeholder: t('Title'), value: formValues.title, type: "text", required: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal", onChange: (e) => setChange('title', e?.target?.value) }, void 0), _jsx(CKEditor, { editor: ClassicEditor, config: custom_config, disabled: props.disabled === true, data: data, onReady: (editor) => {
241
+ console.log('Editor is ready to use!', editor);
242
+ }, onChange: (event, editor) => {
243
+ const data = editor.getData();
244
+ setData(data);
245
+ }, onBlur: (event, editor) => {
246
+ console.log('Blur.', editor);
247
+ }, onFocus: (event, editor) => {
248
+ console.log('Focus.', editor);
249
+ } }, void 0)] }, void 0), _jsxs(Grid, { item: true, xs: 12, sm: 4, md: 3, children: [_jsxs(Grid, { container: true, spacing: 3, children: [_jsx(Grid, { item: true, xs: 12, children: _jsx(TextField, { label: t('slug'), placeholder: t('slug'), value: formValues.slug, type: "text", required: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal", onChange: (e) => setChange('slug', e?.target?.value) }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(TextField, { label: t('Date'), type: "datetime-local", placeholder: t('Date'), value: dateToString(formValues.date), fullWidth: true, variant: "outlined", margin: "normal", onChange: (e) => setChange('expiredDate', dateToISOString(e.target.value)) }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(TagsInput, { value: formValues.tags, label: t('Tags'), placeholder: t('Tags'), fullWidth: true, variant: "outlined", margin: "normal", onChange: (chips) => {
250
+ if (chips && chips instanceof Array) {
251
+ setChange('tags', chips);
252
+ }
253
+ } }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(TextField, { label: t('Author'), placeholder: t('Author'), defaultValue: formValues._author, type: "text", disabled: true, fullWidth: true, maxLength: 255, variant: "outlined", margin: "normal" }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(Switch, { checked: formValues.allowcomment === true, label: t('allowcomment'), defaultChecked: initialValues.allowcomment, onChange: (e) => setChange('allowcomment', e.target.checked) }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(Switch, { checked: formValues.visibility === true, label: t('visibility'), defaultChecked: initialValues.visibility, onChange: (e) => setChange('visibility', e.target.checked) }, void 0) }, void 0), _jsx(Grid, { item: true, xs: 12, children: _jsx(Upload, { uploaded: formValues.image || initialValues.image, label: t('image'), multiple: false, onChange: (value) => setChange('image', value) }, void 0) }, void 0)] }, void 0), props.id && (_jsx("div", { children: _jsx(Button, { startIcon: _jsx(DeleteIcon, {}, void 0), variant: "contained", color: "secondary", disabled: alert, onClick: () => {
254
+ setAlert(true);
255
+ }, children: t('Delete') }, void 0) }, void 0)), _jsx(Button, { style: {}, disabled: props.disabled, color: "primary", onClick: () => doSave(), children: t('Save') }, void 0)] }, void 0)] }, void 0)) : (_jsx("p", { children: t('Loading') }, void 0)) }, void 0));
56
256
  };
57
257
  export default Editor;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0VkaXRvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQWMsRUFBYSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN0RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBVWhELFNBQVMseUJBQXlCLENBQUMsTUFBTTtJQUN2QyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDcEUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7SUFDekMsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsU0FBUztZQUNULEdBQUc7WUFDSCxNQUFNO1lBQ04sUUFBUTtZQUNSLE1BQU07WUFDTixjQUFjO1lBQ2QsY0FBYztZQUNkLEdBQUc7WUFDSCxZQUFZO1lBQ1osYUFBYTtZQUNiLEdBQUc7WUFDSCxhQUFhO1lBQ2IsTUFBTTtZQUNOLE1BQU07U0FDUDtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsY0FBYyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMvRDtDQUNGLENBQUM7QUFHRixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9CLE1BQU0sU0FBUyxHQUFRLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFFNUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFNBQVMsQ0FBQyxPQUFPLEdBQUc7WUFDbEIsUUFBUSxFQUFFLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFFBQVE7WUFDdkQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztTQUM1RCxDQUFDO1FBQ0YsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbkQsT0FBTyxDQUNMLDRCQUNHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDZCxLQUFDLFFBQVEsSUFDUCxNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQ2pDLElBQUksRUFBRSxJQUFJLEVBQ1YsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRWxCLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQyxFQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxFQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxXQUNELENBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FDRixzQkFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQUssQ0FDdEIsV0FDQSxDQUNKLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixlQUFlLE1BQU0sQ0FBQyJ9
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0VkaXRvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQWMsRUFBYSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN0RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFFZixXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBOEJuRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsS0FBSyxFQUFFLEVBQUU7SUFDVCxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEVBQUUsRUFBRTtJQUNSLElBQUksRUFBRSxFQUFFO0lBQ1IsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0NBRVosQ0FBQztBQUVGLFNBQVMseUJBQXlCLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuudel-core",
3
- "version": "0.1.69",
3
+ "version": "0.1.70",
4
4
  "description": "Web components for react with material UI",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",