@elice/material-quiz 1.240715.0 → 1.240716.1

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.
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { EliceWysiwygEditorProps } from '@elice/wysiwyg';
3
+ export declare const MarkdownEditor: ({ value, onChange, ...props }: EliceWysiwygEditorProps) => React.JSX.Element;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var React = require('react');
5
+ var reactUse = require('react-use');
6
+ var wysiwyg = require('@elice/wysiwyg');
7
+
8
+ const STATE_SYNC_DEBOUNCE_TIME = 50;
9
+ const MarkdownEditor = _a => {
10
+ var {
11
+ value,
12
+ onChange
13
+ } = _a,
14
+ props = tslib.__rest(_a, ["value", "onChange"]);
15
+ const [__value, __setValue] = React.useState(value);
16
+ reactUse.useDebounce(() => __setValue(value), STATE_SYNC_DEBOUNCE_TIME, [value]);
17
+ reactUse.useDebounce(() => {
18
+ if (__value !== value && typeof onChange === 'function') {
19
+ onChange(__value !== null && __value !== void 0 ? __value : '');
20
+ }
21
+ }, STATE_SYNC_DEBOUNCE_TIME, [__value]);
22
+ return React.createElement(wysiwyg.EliceWysiwygEditor, Object.assign({
23
+ value: value,
24
+ onChange: __setValue
25
+ }, props));
26
+ };
27
+
28
+ exports.MarkdownEditor = MarkdownEditor;
@@ -8,12 +8,13 @@ var designTokens = require('@elice/design-tokens');
8
8
  var intl = require('@elice/intl');
9
9
  var markdown = require('@elice/markdown');
10
10
  var types = require('@elice/types');
11
+ var wysiwyg = require('@elice/wysiwyg');
11
12
  var styled = require('styled-components');
12
13
  var MaterialQuizContext = require('./context/MaterialQuizContext.js');
13
14
 
14
15
  const StyledMarkdownSSR = styled(markdown.MarkdownSSR).withConfig({
15
16
  componentId: "sc-18kg5i5-0"
16
- })(["p{margin:0 !important;}"]);
17
+ })(["p{margin:0 !important;}", ""], wysiwyg.EliceWysiwygEditorTheme.resetMarkdownSSR);
17
18
  const StyledAccordion = styled(blocks.Accordion).withConfig({
18
19
  componentId: "sc-18kg5i5-1"
19
20
  })(["border-radius:8px;overflow:hidden;background-color:", " !important;border-radius:8px;overflow:hidden;& > *:first-child{background-color:", " !important;}& > *:last-child{background-color:", " !important;}"], designTokens.base.color.navy5, designTokens.base.color.navy7, designTokens.base.color.navy7);
@@ -7,6 +7,7 @@ var reactUse = require('react-use');
7
7
  var blocks = require('@elice/blocks');
8
8
  var icons = require('@elice/icons');
9
9
  var markdown = require('@elice/markdown');
10
+ var wysiwyg = require('@elice/wysiwyg');
10
11
  var material = require('@mui/material');
11
12
  var styled = require('styled-components');
12
13
  var QuestionBox = require('../shared/QuestionBox.js');
@@ -18,7 +19,7 @@ var MaterialQuizContext = require('./context/MaterialQuizContext.js');
18
19
  //
19
20
  const StyledMarkdownSSR = styled(markdown.MarkdownSSR).withConfig({
20
21
  componentId: "sc-1s7jbf9-0"
21
- })([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}"]);
22
+ })([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}", ""], wysiwyg.EliceWysiwygEditorTheme.resetMarkdownSSR);
22
23
  //
23
24
  //
24
25
  //
@@ -7,10 +7,10 @@ var reactHookForm = require('react-hook-form');
7
7
  var reactTransitionGroup = require('react-transition-group');
8
8
  var blocks = require('@elice/blocks');
9
9
  var intl = require('@elice/intl');
10
- var markdown = require('@elice/markdown');
11
10
  var types = require('@elice/types');
12
11
  var material = require('@mui/material');
13
12
  var flattenDeep = require('lodash-es/flattenDeep');
13
+ var index = require('../markdown-editor/index.js');
14
14
  var OptionGroup = require('./options/options-group/OptionGroup.js');
15
15
  var OptionSelectMultiple = require('./options/OptionSelectMultiple.js');
16
16
  var OptionSelectMultipleOrder = require('./options/OptionSelectMultipleOrder.js');
@@ -332,8 +332,7 @@ const MaterialQuizEditContent = () => {
332
332
  name: "questionDescription",
333
333
  render: ({
334
334
  field
335
- }) => React.createElement(markdown.MarkdownEditor, Object.assign({
336
- enableFooter: true,
335
+ }) => React.createElement(index.MarkdownEditor, Object.assign({
337
336
  placeholder: intl$1.formatMessage({
338
337
  id: 'content.description.placeholder'
339
338
  }),
@@ -561,8 +560,7 @@ const MaterialQuizEditContent = () => {
561
560
  role: "danger"
562
561
  }), React.createElement(blocks.Vspace, {
563
562
  height: 0.5
564
- })) : null, React.createElement(markdown.MarkdownEditor, Object.assign({
565
- enableFooter: true,
563
+ })) : null, React.createElement(index.MarkdownEditor, Object.assign({
566
564
  placeholder: intl$1.formatMessage({
567
565
  id: 'content.explanationInfo.textarea.errorMessage.required'
568
566
  }),
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { EliceWysiwygEditorProps } from '@elice/wysiwyg';
3
+ export declare const MarkdownEditor: ({ value, onChange, ...props }: EliceWysiwygEditorProps) => React.JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { __rest } from 'tslib';
2
+ import React from 'react';
3
+ import { useDebounce } from 'react-use';
4
+ import { EliceWysiwygEditor } from '@elice/wysiwyg';
5
+
6
+ const STATE_SYNC_DEBOUNCE_TIME = 50;
7
+ const MarkdownEditor = _a => {
8
+ var {
9
+ value,
10
+ onChange
11
+ } = _a,
12
+ props = __rest(_a, ["value", "onChange"]);
13
+ const [__value, __setValue] = React.useState(value);
14
+ useDebounce(() => __setValue(value), STATE_SYNC_DEBOUNCE_TIME, [value]);
15
+ useDebounce(() => {
16
+ if (__value !== value && typeof onChange === 'function') {
17
+ onChange(__value !== null && __value !== void 0 ? __value : '');
18
+ }
19
+ }, STATE_SYNC_DEBOUNCE_TIME, [__value]);
20
+ return React.createElement(EliceWysiwygEditor, Object.assign({
21
+ value: value,
22
+ onChange: __setValue
23
+ }, props));
24
+ };
25
+
26
+ export { MarkdownEditor };
@@ -4,12 +4,13 @@ import { base } from '@elice/design-tokens';
4
4
  import { useRawEliceIntl } from '@elice/intl';
5
5
  import { MarkdownSSR } from '@elice/markdown';
6
6
  import { enums } from '@elice/types';
7
+ import { EliceWysiwygEditorTheme } from '@elice/wysiwyg';
7
8
  import styled from 'styled-components';
8
9
  import { useMaterialQuizState } from './context/MaterialQuizContext.js';
9
10
 
10
11
  const StyledMarkdownSSR = styled(MarkdownSSR).withConfig({
11
12
  componentId: "sc-18kg5i5-0"
12
- })(["p{margin:0 !important;}"]);
13
+ })(["p{margin:0 !important;}", ""], EliceWysiwygEditorTheme.resetMarkdownSSR);
13
14
  const StyledAccordion = styled(Accordion).withConfig({
14
15
  componentId: "sc-18kg5i5-1"
15
16
  })(["border-radius:8px;overflow:hidden;background-color:", " !important;border-radius:8px;overflow:hidden;& > *:first-child{background-color:", " !important;}& > *:last-child{background-color:", " !important;}"], base.color.navy5, base.color.navy7, base.color.navy7);
@@ -3,6 +3,7 @@ import { useMeasure } from 'react-use';
3
3
  import { Vspace, Shimmer, IconButton } from '@elice/blocks';
4
4
  import { eilMathsignMultiplyBasic } from '@elice/icons';
5
5
  import { MarkdownSSR } from '@elice/markdown';
6
+ import { EliceWysiwygEditorTheme } from '@elice/wysiwyg';
6
7
  import { styled as styled$1, Modal, Box } from '@mui/material';
7
8
  import styled from 'styled-components';
8
9
  import QuestionBox from '../shared/QuestionBox.js';
@@ -14,7 +15,7 @@ import { useMaterialQuizState } from './context/MaterialQuizContext.js';
14
15
  //
15
16
  const StyledMarkdownSSR = styled(MarkdownSSR).withConfig({
16
17
  componentId: "sc-1s7jbf9-0"
17
- })([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}"]);
18
+ })([".elicemd--theme-dark{pre{border:0;}table td,table th{border-bottom-color:rgba(255,255,255,0.16);}}", ""], EliceWysiwygEditorTheme.resetMarkdownSSR);
18
19
  //
19
20
  //
20
21
  //
@@ -3,10 +3,10 @@ import { useFormContext, Controller } from 'react-hook-form';
3
3
  import { Transition } from 'react-transition-group';
4
4
  import { FormInputVerticalLayout, Label, Input, StatusText, Text, Checkbox, Vspace, Flex } from '@elice/blocks';
5
5
  import { useRawEliceIntl } from '@elice/intl';
6
- import { MarkdownEditor } from '@elice/markdown';
7
6
  import { enums } from '@elice/types';
8
7
  import { Tooltip, Stack, TextField, MenuItem, FormControlLabel, Switch, Alert, AlertTitle, Box } from '@mui/material';
9
8
  import flattenDeep from 'lodash-es/flattenDeep';
9
+ import { MarkdownEditor } from '../markdown-editor/index.js';
10
10
  import OptionGroup from './options/options-group/OptionGroup.js';
11
11
  import OptionSelectMultiple from './options/OptionSelectMultiple.js';
12
12
  import OptionSelectMultipleOrder from './options/OptionSelectMultipleOrder.js';
@@ -329,7 +329,6 @@ const MaterialQuizEditContent = () => {
329
329
  render: ({
330
330
  field
331
331
  }) => React.createElement(MarkdownEditor, Object.assign({
332
- enableFooter: true,
333
332
  placeholder: intl.formatMessage({
334
333
  id: 'content.description.placeholder'
335
334
  }),
@@ -558,7 +557,6 @@ const MaterialQuizEditContent = () => {
558
557
  }), React.createElement(Vspace, {
559
558
  height: 0.5
560
559
  })) : null, React.createElement(MarkdownEditor, Object.assign({
561
- enableFooter: true,
562
560
  placeholder: intl.formatMessage({
563
561
  id: 'content.explanationInfo.textarea.errorMessage.required'
564
562
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elice/material-quiz",
3
- "version": "1.240715.0",
3
+ "version": "1.240716.1",
4
4
  "description": "User view and editing components of Elice material quiz",
5
5
  "repository": "https://git.elicer.io/elice/frontend/library/elice-material",
6
6
  "license": "UNLICENSED",
@@ -35,6 +35,7 @@
35
35
  "@elice/material-shared-utils": "*",
36
36
  "@elice/mui-system": "^5",
37
37
  "@elice/types": "^1",
38
+ "@elice/wysiwyg": "^1",
38
39
  "@emotion/react": "^11.10.0",
39
40
  "@emotion/styled": "^11.10.0",
40
41
  "@fortawesome/pro-regular-svg-icons": "^6",
@@ -65,10 +66,11 @@
65
66
  "@elice/icons-legacy": "npm:@elice/icons@0.230814.0",
66
67
  "@elice/intl": "0.240425.0-rc.2",
67
68
  "@elice/markdown": "^1.240124.0",
68
- "@elice/material-shared-types": "1.240715.0",
69
- "@elice/material-shared-utils": "1.240715.0",
69
+ "@elice/material-shared-types": "1.240716.1",
70
+ "@elice/material-shared-utils": "1.240716.1",
70
71
  "@elice/mui-system": "^5.240108.1",
71
72
  "@elice/types": "^1.240619.0",
73
+ "@elice/wysiwyg": "1.240716.1",
72
74
  "@emotion/react": "^11.10.0",
73
75
  "@emotion/styled": "^11.10.0",
74
76
  "@fortawesome/pro-regular-svg-icons": "^6.4.2",
@@ -88,5 +90,5 @@
88
90
  "react-use": "^17.2.4",
89
91
  "styled-components": "^5.3.0"
90
92
  },
91
- "gitHead": "c379e8820a96c12637f75eab96edc18a06188009"
93
+ "gitHead": "241f783a1e8c8e274e5fd5ca8efb1a9c68a2e070"
92
94
  }