@elliemae/ds-codeeditor 3.12.0-rc.2 → 3.12.0-rc.20
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/cjs/DSCodeEditor.js +26 -25
- package/dist/cjs/DSCodeEditor.js.map +1 -1
- package/dist/cjs/components/DSCodeEditorForm.js +109 -119
- package/dist/cjs/components/DSCodeEditorForm.js.map +1 -1
- package/dist/cjs/components/DSCodeEditorImpl.js +35 -32
- package/dist/cjs/components/DSCodeEditorImpl.js.map +1 -1
- package/dist/esm/DSCodeEditor.js +26 -25
- package/dist/esm/DSCodeEditor.js.map +1 -1
- package/dist/esm/components/DSCodeEditorForm.js +109 -119
- package/dist/esm/components/DSCodeEditorForm.js.map +1 -1
- package/dist/esm/components/DSCodeEditorImpl.js +35 -32
- package/dist/esm/components/DSCodeEditorImpl.js.map +1 -1
- package/package.json +8 -8
package/dist/cjs/DSCodeEditor.js
CHANGED
|
@@ -64,13 +64,11 @@ const DSCodeEditor = ({
|
|
|
64
64
|
errors: []
|
|
65
65
|
});
|
|
66
66
|
const reactAceComponent = (0, import_react.useRef)();
|
|
67
|
-
const editor = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}),
|
|
73
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_ace.default, {
|
|
67
|
+
const editor = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
68
|
+
showHeader && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DSCodeEditorForm.default, { fileName, reactAceComponent }),
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
70
|
+
import_react_ace.default,
|
|
71
|
+
{
|
|
74
72
|
ref: reactAceComponent,
|
|
75
73
|
editorProps: { $blockScrolling: true },
|
|
76
74
|
maxLines,
|
|
@@ -87,26 +85,29 @@ const DSCodeEditor = ({
|
|
|
87
85
|
useWorker: showSyntaxChecks
|
|
88
86
|
},
|
|
89
87
|
value
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
});
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
] });
|
|
93
91
|
if (!useModal)
|
|
94
92
|
return editor;
|
|
95
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
93
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
94
|
+
import_ds_modal.default,
|
|
95
|
+
{
|
|
96
|
+
centered: false,
|
|
97
|
+
confirmLabel,
|
|
98
|
+
containerProps,
|
|
99
|
+
isOpen,
|
|
100
|
+
modalTitle,
|
|
101
|
+
modalType,
|
|
102
|
+
onClose: () => onClose(value, fileName, errors),
|
|
103
|
+
onConfirm: () => onSave(value, fileName, errors),
|
|
104
|
+
onReject: () => onReject(value, fileName, errors),
|
|
105
|
+
rejectLabel,
|
|
106
|
+
size,
|
|
107
|
+
style,
|
|
108
|
+
children: editor
|
|
109
|
+
}
|
|
110
|
+
);
|
|
110
111
|
};
|
|
111
112
|
const codeEditorProps = {
|
|
112
113
|
containerProps: import_ds_utilities.PropTypes.object.description("Set of Properties attached to the main container"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/DSCodeEditor.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useRef } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport DSModal, { modalTypes } from '@elliemae/ds-modal';\nimport AceEditor from 'react-ace';\nimport DSCodeEditorForm from './components/DSCodeEditorForm';\nimport 'brace/mode/javascript.js';\nimport 'brace/theme/tomorrow.js';\n\nconst DSCodeEditor = ({\n containerProps = {},\n value: defaultValue = '',\n onSave = () => null,\n onClose = () => null,\n onReject = () => null,\n onChange = () => null,\n isOpen = false,\n fileName = '',\n confirmLabel = 'Save',\n maxLines = 20,\n minLines = 20,\n modalTitle = 'Javascript Editor',\n modalType = 'confirm',\n rejectLabel = 'Close',\n size = 'large',\n style = {},\n useModal = true,\n showHeader = true,\n showSyntaxChecks = true,\n}) => {\n const [{ value, errors }, setState] = useState({\n value: defaultValue,\n errors: [],\n });\n const reactAceComponent = useRef();\n\n const editor = (\n <>\n {showHeader && <DSCodeEditorForm fileName={fileName} reactAceComponent={reactAceComponent} />}\n <AceEditor\n ref={reactAceComponent}\n editorProps={{ $blockScrolling: true }}\n maxLines={maxLines}\n minLines={minLines}\n mode=\"javascript\"\n name=\"ace-code-edior\"\n onChange={(val) => {\n setState({ errors, value: val });\n onChange(val, errors);\n }}\n onValidate={(annotations) => setState({ value, errors: annotations })}\n theme=\"tomorrow\"\n setOptions={{\n useWorker: showSyntaxChecks,\n }}\n value={value}\n />\n </>\n );\n if (!useModal) return editor;\n return (\n <DSModal\n centered={false}\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onClose={() => onClose(value, fileName, errors)}\n onConfirm={() => onSave(value, fileName, errors)}\n onReject={() => onReject(value, fileName, errors)}\n rejectLabel={rejectLabel}\n size={size}\n style={style}\n >\n {editor}\n </DSModal>\n );\n};\n\nconst codeEditorProps = {\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n value: PropTypes.string.description('editors content').isRequired,\n onSave: PropTypes.func.description('function called when the user press save'),\n onClose: PropTypes.func.description('function called when the user closes the modal'),\n onReject: PropTypes.func.description('function called when is rejected'),\n onChange: PropTypes.func.description('function executed when code editor value changes').isRequired,\n isOpen: PropTypes.bool.description('Whether the modal is opened or not').defaultValue(false),\n fileName: PropTypes.string.description('File name to open in the editor'),\n maxLines: PropTypes.number.description('Max lines in the editor content').defaultValue(20),\n minLines: PropTypes.number.description('Min lines in the editor content').defaultValue(20),\n modalTitle: PropTypes.string.description('Modal title').defaultValue('Javascript Editor'),\n confirmLabel: PropTypes.string.description('Customize modal confirm label').defaultValue('Save'),\n rejectLabel: PropTypes.string.description('Customize modal rejection label').defaultValue('Close'),\n modalType: PropTypes.oneOf(modalTypes).description('Modal type').defaultValue('confirm'),\n size: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge'])\n .description('modal size')\n .defaultValue('large'),\n style: PropTypes.object.description('css inline style'),\n useModal: PropTypes.bool.description('whether to use code editor inside modal or not').defaultValue(true),\n showHeader: PropTypes.bool.description('show editors header').defaultValue(true),\n showSyntaxChecks: PropTypes.bool.description('show syntax warnings and checks').defaultValue(true),\n};\n\nDSCodeEditor.propTypes = codeEditorProps;\nDSCodeEditor.displayName = 'DSCodeEditor';\nconst CodeEditorWithSchema = describe(DSCodeEditor);\nCodeEditorWithSchema.propTypes = codeEditorProps;\n\nexport { CodeEditorWithSchema, DSCodeEditor };\nexport default DSCodeEditor;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqCnB;AApCJ,mBAAwC;AACxC,0BAAoC;AACpC,sBAAoC;AACpC,uBAAsB;AACtB,8BAA6B;AAC7B,wBAAO;AACP,sBAAO;AAEP,MAAM,eAAe,CAAC;AAAA,EACpB,iBAAiB,CAAC;AAAA,EAClB,OAAO,eAAe;AAAA,EACtB,SAAS,MAAM;AAAA,EACf,UAAU,MAAM;AAAA,EAChB,WAAW,MAAM;AAAA,EACjB,WAAW,MAAM;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ,CAAC;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,mBAAmB;AACrB,MAAM;AACJ,QAAM,CAAC,EAAE,OAAO,OAAO,GAAG,QAAQ,QAAI,uBAAS;AAAA,IAC7C,OAAO;AAAA,IACP,QAAQ,CAAC;AAAA,EACX,CAAC;AACD,QAAM,wBAAoB,qBAAO;AAEjC,QAAM,SACJ
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["DSCodeEditorForm", "AceEditor", "DSModal"]
|
|
7
7
|
}
|
|
@@ -79,129 +79,119 @@ class DSCodeEditorForm extends import_react.Component {
|
|
|
79
79
|
render() {
|
|
80
80
|
const { fileName } = this.props;
|
|
81
81
|
const { find, replace, isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;
|
|
82
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
83
|
-
className:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
82
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `${cssClassName}`, children: [
|
|
83
|
+
fileName ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: classNameBlock("file-name"), children: [
|
|
84
|
+
"File Name: ",
|
|
85
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
86
|
+
" ",
|
|
87
|
+
fileName,
|
|
88
|
+
" "
|
|
89
|
+
] })
|
|
90
|
+
] }) : null,
|
|
91
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: classNameBlock("find-replace-btn"), children: [
|
|
92
|
+
!find && !replace ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, { buttonType: "secondary", labelText: "Find", onClick: () => this.setState({ find: true }), size: "m" }) : null,
|
|
93
|
+
!replace ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
94
|
+
import_ds_button.default,
|
|
95
|
+
{
|
|
96
|
+
buttonType: "secondary",
|
|
97
|
+
labelText: "Find & Replace",
|
|
98
|
+
onClick: () => this.setState({ replace: true }),
|
|
99
|
+
size: "m"
|
|
100
|
+
}
|
|
101
|
+
) : null
|
|
102
|
+
] }),
|
|
103
|
+
find || replace ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_form.DSInputGroup, { className: classNameBlock("find"), children: [
|
|
104
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
105
|
+
import_ds_form.DSTextBox,
|
|
106
|
+
{
|
|
107
|
+
className: "find-word",
|
|
108
|
+
fluidWidth: false,
|
|
109
|
+
id: "find-textbox",
|
|
110
|
+
onChange: (e) => this.setState({ filteredText: e.currentTarget.value }),
|
|
111
|
+
placeholder: "Find",
|
|
112
|
+
rightComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: classNameBlock("next-back-btn"), children: [
|
|
113
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, { icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallLeft, {}), size: "m" }),
|
|
114
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, { icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallRight, {}), onClick: () => this.searchWord(), size: "m" })
|
|
115
|
+
] }),
|
|
116
|
+
value: filteredText
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CheckOptionsGroup, { children: [
|
|
120
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
121
|
+
import_ds_form.DSCheckbox,
|
|
122
|
+
{
|
|
123
|
+
checked: isCaseSensitive,
|
|
124
|
+
id: "case-sensitive-check",
|
|
125
|
+
labelText: "Case Sensitive",
|
|
126
|
+
name: "case-sensitive-check",
|
|
127
|
+
onChange: () => this.setState({ isCaseSensitive: !isCaseSensitive })
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
131
|
+
import_ds_form.DSCheckbox,
|
|
132
|
+
{
|
|
133
|
+
checked: isWholeWord,
|
|
134
|
+
id: "whole-word-check",
|
|
135
|
+
labelText: "Whole Word",
|
|
136
|
+
name: "whole-word-check",
|
|
137
|
+
onChange: () => this.setState({ isWholeWord: !isWholeWord })
|
|
138
|
+
}
|
|
139
|
+
),
|
|
140
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
141
|
+
import_ds_form.DSCheckbox,
|
|
142
|
+
{
|
|
143
|
+
checked: replace,
|
|
144
|
+
id: "replace-check",
|
|
145
|
+
labelText: "Replace",
|
|
146
|
+
name: "replace-check",
|
|
147
|
+
onChange: () => this.setState({ replace: !replace })
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
] }),
|
|
151
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
152
|
+
import_ds_button.default,
|
|
153
|
+
{
|
|
154
|
+
buttonType: "secondary",
|
|
155
|
+
labelText: "Done",
|
|
156
|
+
onClick: () => this.setState({ replace: false, find: false }),
|
|
157
|
+
size: "m"
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
] }) : null,
|
|
161
|
+
replace ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: classNameBlock("replace"), children: [
|
|
162
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
163
|
+
import_ds_form.DSTextBox,
|
|
164
|
+
{
|
|
165
|
+
className: "find-word",
|
|
166
|
+
fluidWidth: false,
|
|
167
|
+
id: "replace-textbox",
|
|
168
|
+
onChange: (e) => this.setState({ replaceText: e.currentTarget.value }),
|
|
169
|
+
placeholder: "Replace",
|
|
170
|
+
value: replaceText
|
|
171
|
+
}
|
|
172
|
+
),
|
|
173
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: classNameBlock("replace-btns"), children: [
|
|
174
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
175
|
+
import_ds_button.default,
|
|
176
|
+
{
|
|
102
177
|
buttonType: "secondary",
|
|
103
|
-
labelText: "
|
|
104
|
-
onClick: () => this.
|
|
178
|
+
labelText: "Replace",
|
|
179
|
+
onClick: () => this.searchWord(true, false),
|
|
105
180
|
size: "m"
|
|
106
|
-
}
|
|
107
|
-
|
|
181
|
+
}
|
|
182
|
+
),
|
|
183
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
184
|
+
import_ds_button.default,
|
|
185
|
+
{
|
|
108
186
|
buttonType: "secondary",
|
|
109
|
-
labelText: "
|
|
110
|
-
onClick: () => this.
|
|
187
|
+
labelText: "Replace All",
|
|
188
|
+
onClick: () => this.searchWord(true, true),
|
|
111
189
|
size: "m"
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
children: [
|
|
118
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSTextBox, {
|
|
119
|
-
className: "find-word",
|
|
120
|
-
fluidWidth: false,
|
|
121
|
-
id: "find-textbox",
|
|
122
|
-
onChange: (e) => this.setState({ filteredText: e.currentTarget.value }),
|
|
123
|
-
placeholder: "Find",
|
|
124
|
-
rightComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
125
|
-
className: classNameBlock("next-back-btn"),
|
|
126
|
-
children: [
|
|
127
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
|
|
128
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallLeft, {}),
|
|
129
|
-
size: "m"
|
|
130
|
-
}),
|
|
131
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
|
|
132
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallRight, {}),
|
|
133
|
-
onClick: () => this.searchWord(),
|
|
134
|
-
size: "m"
|
|
135
|
-
})
|
|
136
|
-
]
|
|
137
|
-
}),
|
|
138
|
-
value: filteredText
|
|
139
|
-
}),
|
|
140
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CheckOptionsGroup, {
|
|
141
|
-
children: [
|
|
142
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSCheckbox, {
|
|
143
|
-
checked: isCaseSensitive,
|
|
144
|
-
id: "case-sensitive-check",
|
|
145
|
-
labelText: "Case Sensitive",
|
|
146
|
-
name: "case-sensitive-check",
|
|
147
|
-
onChange: () => this.setState({ isCaseSensitive: !isCaseSensitive })
|
|
148
|
-
}),
|
|
149
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSCheckbox, {
|
|
150
|
-
checked: isWholeWord,
|
|
151
|
-
id: "whole-word-check",
|
|
152
|
-
labelText: "Whole Word",
|
|
153
|
-
name: "whole-word-check",
|
|
154
|
-
onChange: () => this.setState({ isWholeWord: !isWholeWord })
|
|
155
|
-
}),
|
|
156
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSCheckbox, {
|
|
157
|
-
checked: replace,
|
|
158
|
-
id: "replace-check",
|
|
159
|
-
labelText: "Replace",
|
|
160
|
-
name: "replace-check",
|
|
161
|
-
onChange: () => this.setState({ replace: !replace })
|
|
162
|
-
})
|
|
163
|
-
]
|
|
164
|
-
}),
|
|
165
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
|
|
166
|
-
buttonType: "secondary",
|
|
167
|
-
labelText: "Done",
|
|
168
|
-
onClick: () => this.setState({ replace: false, find: false }),
|
|
169
|
-
size: "m"
|
|
170
|
-
})
|
|
171
|
-
]
|
|
172
|
-
}) : null,
|
|
173
|
-
replace ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
174
|
-
className: classNameBlock("replace"),
|
|
175
|
-
children: [
|
|
176
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSTextBox, {
|
|
177
|
-
className: "find-word",
|
|
178
|
-
fluidWidth: false,
|
|
179
|
-
id: "replace-textbox",
|
|
180
|
-
onChange: (e) => this.setState({ replaceText: e.currentTarget.value }),
|
|
181
|
-
placeholder: "Replace",
|
|
182
|
-
value: replaceText
|
|
183
|
-
}),
|
|
184
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
185
|
-
className: classNameBlock("replace-btns"),
|
|
186
|
-
children: [
|
|
187
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
|
|
188
|
-
buttonType: "secondary",
|
|
189
|
-
labelText: "Replace",
|
|
190
|
-
onClick: () => this.searchWord(true, false),
|
|
191
|
-
size: "m"
|
|
192
|
-
}),
|
|
193
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
|
|
194
|
-
buttonType: "secondary",
|
|
195
|
-
labelText: "Replace All",
|
|
196
|
-
onClick: () => this.searchWord(true, true),
|
|
197
|
-
size: "m"
|
|
198
|
-
})
|
|
199
|
-
]
|
|
200
|
-
})
|
|
201
|
-
]
|
|
202
|
-
}) : null
|
|
203
|
-
]
|
|
204
|
-
});
|
|
190
|
+
}
|
|
191
|
+
)
|
|
192
|
+
] })
|
|
193
|
+
] }) : null
|
|
194
|
+
] });
|
|
205
195
|
}
|
|
206
196
|
}
|
|
207
197
|
var DSCodeEditorForm_default = DSCodeEditorForm;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/DSCodeEditorForm.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport DSButton from '@elliemae/ds-button';\nimport { DSCheckbox, DSTextBox, DSInputGroup } from '@elliemae/ds-form';\nimport { convertPropToCssClassName, aggregatedClasses } from '@elliemae/ds-classnames';\nimport { ChevronSmallLeft, ChevronSmallRight } from '@elliemae/ds-icons';\n\nconst blockName = 'code-editor';\n\nconst { cssClassName, classNameBlock } = convertPropToCssClassName(blockName);\n\nconst CheckOptionsGroup = aggregatedClasses('div')(`${blockName}-options-group`);\n\nclass DSCodeEditorForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n find: false,\n replace: false,\n isCaseSensitive: false,\n isWholeWord: false,\n filteredText: '',\n replaceText: '',\n };\n\n this.searchWord = this.searchWord.bind(this);\n }\n\n searchWord(isReplace, all) {\n const {\n reactAceComponent: {\n current: { editor },\n },\n } = this.props;\n const { isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;\n const options = {\n backwards: false,\n wrap: true,\n caseSensitive: isCaseSensitive,\n wholeWord: isWholeWord,\n regExp: true,\n };\n editor.find(filteredText, options);\n const selectedContent = editor.getSelectedText();\n if (isReplace && replaceText && selectedContent) {\n if (all) {\n editor.findAll(filteredText, options);\n editor.replaceAll(replaceText);\n } else {\n const range = editor.selection.getRange();\n editor.session.replace(range, replaceText);\n }\n }\n }\n\n render() {\n const { fileName } = this.props;\n\n const { find, replace, isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;\n return (\n <div className={`${cssClassName}`}>\n {fileName ? (\n <div className={classNameBlock('file-name')}>\n File Name: <span> {fileName} </span>\n </div>\n ) : null}\n <div className={classNameBlock('find-replace-btn')}>\n {!find && !replace ? (\n <DSButton buttonType=\"secondary\" labelText=\"Find\" onClick={() => this.setState({ find: true })} size=\"m\" />\n ) : null}\n {!replace ? (\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Find & Replace\"\n onClick={() => this.setState({ replace: true })}\n size=\"m\"\n />\n ) : null}\n </div>\n {find || replace ? (\n <DSInputGroup className={classNameBlock('find')}>\n <DSTextBox\n className=\"find-word\"\n fluidWidth={false}\n id=\"find-textbox\"\n onChange={(e) => this.setState({ filteredText: e.currentTarget.value })}\n placeholder=\"Find\"\n rightComponent={\n <div className={classNameBlock('next-back-btn')}>\n <DSButton icon={<ChevronSmallLeft />} size=\"m\" />\n <DSButton icon={<ChevronSmallRight />} onClick={() => this.searchWord()} size=\"m\" />\n </div>\n }\n value={filteredText}\n />\n <CheckOptionsGroup>\n <DSCheckbox\n checked={isCaseSensitive}\n id=\"case-sensitive-check\"\n labelText=\"Case Sensitive\"\n name=\"case-sensitive-check\"\n onChange={() => this.setState({ isCaseSensitive: !isCaseSensitive })}\n />\n <DSCheckbox\n checked={isWholeWord}\n id=\"whole-word-check\"\n labelText=\"Whole Word\"\n name=\"whole-word-check\"\n onChange={() => this.setState({ isWholeWord: !isWholeWord })}\n />\n <DSCheckbox\n checked={replace}\n id=\"replace-check\"\n labelText=\"Replace\"\n name=\"replace-check\"\n onChange={() => this.setState({ replace: !replace })}\n />\n </CheckOptionsGroup>\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Done\"\n onClick={() => this.setState({ replace: false, find: false })}\n size=\"m\"\n />\n </DSInputGroup>\n ) : null}\n {replace ? (\n <div className={classNameBlock('replace')}>\n <DSTextBox\n className=\"find-word\"\n fluidWidth={false}\n id=\"replace-textbox\"\n onChange={(e) => this.setState({ replaceText: e.currentTarget.value })}\n placeholder=\"Replace\"\n value={replaceText}\n />\n <div className={classNameBlock('replace-btns')}>\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Replace\"\n onClick={() => this.searchWord(true, false)}\n size=\"m\"\n />\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Replace All\"\n onClick={() => this.searchWord(true, true)}\n size=\"m\"\n />\n </div>\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport default DSCodeEditorForm;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADgEA;AA9DvB,mBAAiC;AACjC,uBAAqB;AACrB,qBAAoD;AACpD,2BAA6D;AAC7D,sBAAoD;AAEpD,MAAM,YAAY;AAElB,MAAM,EAAE,cAAc,eAAe,QAAI,gDAA0B,SAAS;AAE5E,MAAM,wBAAoB,wCAAkB,KAAK,EAAE,GAAG,yBAAyB;AAE/E,MAAM,yBAAyB,uBAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AAEA,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAAA,EAC7C;AAAA,EAEA,WAAW,WAAW,KAAK;AACzB,UAAM;AAAA,MACJ,mBAAmB;AAAA,QACjB,SAAS,EAAE,OAAO;AAAA,MACpB;AAAA,IACF,IAAI,KAAK;AACT,UAAM,EAAE,iBAAiB,aAAa,cAAc,YAAY,IAAI,KAAK;AACzE,UAAM,UAAU;AAAA,MACd,WAAW;AAAA,MACX,MAAM;AAAA,MACN,eAAe;AAAA,MACf,WAAW;AAAA,MACX,QAAQ;AAAA,IACV;AACA,WAAO,KAAK,cAAc,OAAO;AACjC,UAAM,kBAAkB,OAAO,gBAAgB;AAC/C,QAAI,aAAa,eAAe,iBAAiB;AAC/C,UAAI,KAAK;AACP,eAAO,QAAQ,cAAc,OAAO;AACpC,eAAO,WAAW,WAAW;AAAA,MAC/B,OAAO;AACL,cAAM,QAAQ,OAAO,UAAU,SAAS;AACxC,eAAO,QAAQ,QAAQ,OAAO,WAAW;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,UAAM,EAAE,MAAM,SAAS,iBAAiB,aAAa,cAAc,YAAY,IAAI,KAAK;AACxF,WACE,6CAAC
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["DSButton"]
|
|
7
7
|
}
|
|
@@ -62,38 +62,41 @@ class DSCodeEditorImpl extends import_react.Component {
|
|
|
62
62
|
containerProps
|
|
63
63
|
} = this.props;
|
|
64
64
|
const { value, errors } = this.state;
|
|
65
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
reactAceComponent: this.reactAceComponent
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
65
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
66
|
+
import_ds_modal.default,
|
|
67
|
+
{
|
|
68
|
+
centered: false,
|
|
69
|
+
confirmLabel,
|
|
70
|
+
containerProps,
|
|
71
|
+
isOpen,
|
|
72
|
+
modalTitle,
|
|
73
|
+
modalType,
|
|
74
|
+
onClose: () => onClose(value, fileName, errors),
|
|
75
|
+
onConfirm: () => onSave(value, fileName, errors),
|
|
76
|
+
onReject: () => onReject(value, fileName, errors),
|
|
77
|
+
rejectLabel,
|
|
78
|
+
size,
|
|
79
|
+
style,
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DSCodeEditorForm.default, { fileName, reactAceComponent: this.reactAceComponent }),
|
|
82
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
83
|
+
import_react_ace.default,
|
|
84
|
+
{
|
|
85
|
+
ref: this.reactAceComponent,
|
|
86
|
+
editorProps: { $blockScrolling: true },
|
|
87
|
+
maxLines,
|
|
88
|
+
minLines,
|
|
89
|
+
mode: "javascript",
|
|
90
|
+
name: "ace-code-edior",
|
|
91
|
+
onChange: (val) => this.setState({ value: val }),
|
|
92
|
+
onValidate: (annotations) => this.setState({ errors: annotations }),
|
|
93
|
+
theme: "tomorrow",
|
|
94
|
+
value
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
);
|
|
97
100
|
}
|
|
98
101
|
}
|
|
99
102
|
var DSCodeEditorImpl_default = DSCodeEditorImpl;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/DSCodeEditorImpl.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import React, { Component } from 'react';\nimport AceEditor from 'react-ace';\nimport DSModal from '@elliemae/ds-modal';\nimport DSCodeEditorForm from './DSCodeEditorForm';\nimport 'brace/mode/javascript.js';\nimport 'brace/theme/tomorrow.js';\n\nclass DSCodeEditorImpl extends Component {\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n errors: [],\n };\n this.reactAceComponent = React.createRef();\n }\n\n render() {\n const {\n onSave,\n onClose,\n onReject,\n isOpen,\n fileName,\n confirmLabel,\n maxLines,\n minLines,\n modalTitle,\n modalType,\n rejectLabel,\n size,\n style,\n containerProps,\n } = this.props;\n\n const { value, errors } = this.state;\n return (\n <DSModal\n centered={false}\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onClose={() => onClose(value, fileName, errors)}\n onConfirm={() => onSave(value, fileName, errors)}\n onReject={() => onReject(value, fileName, errors)}\n rejectLabel={rejectLabel}\n size={size}\n style={style}\n >\n <DSCodeEditorForm fileName={fileName} reactAceComponent={this.reactAceComponent} />\n <AceEditor\n ref={this.reactAceComponent}\n editorProps={{ $blockScrolling: true }}\n maxLines={maxLines}\n minLines={minLines}\n mode=\"javascript\"\n name=\"ace-code-edior\"\n onChange={(val) => this.setState({ value: val })}\n onValidate={(annotations) => this.setState({ errors: annotations })}\n theme=\"tomorrow\"\n value={value}\n />\n </DSModal>\n );\n }\n}\n\nexport default DSCodeEditorImpl;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqCjB;AArCN,mBAAiC;AACjC,uBAAsB;AACtB,sBAAoB;AACpB,8BAA6B;AAC7B,wBAAO;AACP,sBAAO;AAEP,MAAM,yBAAyB,uBAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,MACb,QAAQ,CAAC;AAAA,IACX;AACA,SAAK,oBAAoB,aAAAA,QAAM,UAAU;AAAA,EAC3C;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,KAAK;AAET,UAAM,EAAE,OAAO,OAAO,IAAI,KAAK;AAC/B,WACE,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqCjB;AArCN,mBAAiC;AACjC,uBAAsB;AACtB,sBAAoB;AACpB,8BAA6B;AAC7B,wBAAO;AACP,sBAAO;AAEP,MAAM,yBAAyB,uBAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,MACb,QAAQ,CAAC;AAAA,IACX;AACA,SAAK,oBAAoB,aAAAA,QAAM,UAAU;AAAA,EAC3C;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,KAAK;AAET,UAAM,EAAE,OAAO,OAAO,IAAI,KAAK;AAC/B,WACE;AAAA,MAAC,gBAAAC;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,MAAM,QAAQ,OAAO,UAAU,MAAM;AAAA,QAC9C,WAAW,MAAM,OAAO,OAAO,UAAU,MAAM;AAAA,QAC/C,UAAU,MAAM,SAAS,OAAO,UAAU,MAAM;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,sDAAC,wBAAAC,SAAA,EAAiB,UAAoB,mBAAmB,KAAK,mBAAmB;AAAA,UACjF;AAAA,YAAC,iBAAAC;AAAA,YAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,aAAa,EAAE,iBAAiB,KAAK;AAAA,cACrC;AAAA,cACA;AAAA,cACA,MAAK;AAAA,cACL,MAAK;AAAA,cACL,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,cAC/C,YAAY,CAAC,gBAAgB,KAAK,SAAS,EAAE,QAAQ,YAAY,CAAC;AAAA,cAClE,OAAM;AAAA,cACN;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,IAAO,2BAAQ;",
|
|
6
6
|
"names": ["React", "DSModal", "DSCodeEditorForm", "AceEditor"]
|
|
7
7
|
}
|
package/dist/esm/DSCodeEditor.js
CHANGED
|
@@ -33,13 +33,11 @@ const DSCodeEditor = ({
|
|
|
33
33
|
errors: []
|
|
34
34
|
});
|
|
35
35
|
const reactAceComponent = useRef();
|
|
36
|
-
const editor = /* @__PURE__ */ jsxs(Fragment, {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}),
|
|
42
|
-
/* @__PURE__ */ jsx(AceEditor, {
|
|
36
|
+
const editor = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37
|
+
showHeader && /* @__PURE__ */ jsx(DSCodeEditorForm, { fileName, reactAceComponent }),
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
AceEditor,
|
|
40
|
+
{
|
|
43
41
|
ref: reactAceComponent,
|
|
44
42
|
editorProps: { $blockScrolling: true },
|
|
45
43
|
maxLines,
|
|
@@ -56,26 +54,29 @@ const DSCodeEditor = ({
|
|
|
56
54
|
useWorker: showSyntaxChecks
|
|
57
55
|
},
|
|
58
56
|
value
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
});
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
] });
|
|
62
60
|
if (!useModal)
|
|
63
61
|
return editor;
|
|
64
|
-
return /* @__PURE__ */ jsx(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
return /* @__PURE__ */ jsx(
|
|
63
|
+
DSModal,
|
|
64
|
+
{
|
|
65
|
+
centered: false,
|
|
66
|
+
confirmLabel,
|
|
67
|
+
containerProps,
|
|
68
|
+
isOpen,
|
|
69
|
+
modalTitle,
|
|
70
|
+
modalType,
|
|
71
|
+
onClose: () => onClose(value, fileName, errors),
|
|
72
|
+
onConfirm: () => onSave(value, fileName, errors),
|
|
73
|
+
onReject: () => onReject(value, fileName, errors),
|
|
74
|
+
rejectLabel,
|
|
75
|
+
size,
|
|
76
|
+
style,
|
|
77
|
+
children: editor
|
|
78
|
+
}
|
|
79
|
+
);
|
|
79
80
|
};
|
|
80
81
|
const codeEditorProps = {
|
|
81
82
|
containerProps: PropTypes.object.description("Set of Properties attached to the main container"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSCodeEditor.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState, useRef } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport DSModal, { modalTypes } from '@elliemae/ds-modal';\nimport AceEditor from 'react-ace';\nimport DSCodeEditorForm from './components/DSCodeEditorForm';\nimport 'brace/mode/javascript.js';\nimport 'brace/theme/tomorrow.js';\n\nconst DSCodeEditor = ({\n containerProps = {},\n value: defaultValue = '',\n onSave = () => null,\n onClose = () => null,\n onReject = () => null,\n onChange = () => null,\n isOpen = false,\n fileName = '',\n confirmLabel = 'Save',\n maxLines = 20,\n minLines = 20,\n modalTitle = 'Javascript Editor',\n modalType = 'confirm',\n rejectLabel = 'Close',\n size = 'large',\n style = {},\n useModal = true,\n showHeader = true,\n showSyntaxChecks = true,\n}) => {\n const [{ value, errors }, setState] = useState({\n value: defaultValue,\n errors: [],\n });\n const reactAceComponent = useRef();\n\n const editor = (\n <>\n {showHeader && <DSCodeEditorForm fileName={fileName} reactAceComponent={reactAceComponent} />}\n <AceEditor\n ref={reactAceComponent}\n editorProps={{ $blockScrolling: true }}\n maxLines={maxLines}\n minLines={minLines}\n mode=\"javascript\"\n name=\"ace-code-edior\"\n onChange={(val) => {\n setState({ errors, value: val });\n onChange(val, errors);\n }}\n onValidate={(annotations) => setState({ value, errors: annotations })}\n theme=\"tomorrow\"\n setOptions={{\n useWorker: showSyntaxChecks,\n }}\n value={value}\n />\n </>\n );\n if (!useModal) return editor;\n return (\n <DSModal\n centered={false}\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onClose={() => onClose(value, fileName, errors)}\n onConfirm={() => onSave(value, fileName, errors)}\n onReject={() => onReject(value, fileName, errors)}\n rejectLabel={rejectLabel}\n size={size}\n style={style}\n >\n {editor}\n </DSModal>\n );\n};\n\nconst codeEditorProps = {\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n value: PropTypes.string.description('editors content').isRequired,\n onSave: PropTypes.func.description('function called when the user press save'),\n onClose: PropTypes.func.description('function called when the user closes the modal'),\n onReject: PropTypes.func.description('function called when is rejected'),\n onChange: PropTypes.func.description('function executed when code editor value changes').isRequired,\n isOpen: PropTypes.bool.description('Whether the modal is opened or not').defaultValue(false),\n fileName: PropTypes.string.description('File name to open in the editor'),\n maxLines: PropTypes.number.description('Max lines in the editor content').defaultValue(20),\n minLines: PropTypes.number.description('Min lines in the editor content').defaultValue(20),\n modalTitle: PropTypes.string.description('Modal title').defaultValue('Javascript Editor'),\n confirmLabel: PropTypes.string.description('Customize modal confirm label').defaultValue('Save'),\n rejectLabel: PropTypes.string.description('Customize modal rejection label').defaultValue('Close'),\n modalType: PropTypes.oneOf(modalTypes).description('Modal type').defaultValue('confirm'),\n size: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge'])\n .description('modal size')\n .defaultValue('large'),\n style: PropTypes.object.description('css inline style'),\n useModal: PropTypes.bool.description('whether to use code editor inside modal or not').defaultValue(true),\n showHeader: PropTypes.bool.description('show editors header').defaultValue(true),\n showSyntaxChecks: PropTypes.bool.description('show syntax warnings and checks').defaultValue(true),\n};\n\nDSCodeEditor.propTypes = codeEditorProps;\nDSCodeEditor.displayName = 'DSCodeEditor';\nconst CodeEditorWithSchema = describe(DSCodeEditor);\nCodeEditorWithSchema.propTypes = codeEditorProps;\n\nexport { CodeEditorWithSchema, DSCodeEditor };\nexport default DSCodeEditor;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACqCnB,mBACiB,KADjB;AApCJ,SAAgB,UAAU,cAAc;AACxC,SAAS,UAAU,iBAAiB;AACpC,OAAO,WAAW,kBAAkB;AACpC,OAAO,eAAe;AACtB,OAAO,sBAAsB;AAC7B,OAAO;AACP,OAAO;AAEP,MAAM,eAAe,CAAC;AAAA,EACpB,iBAAiB,CAAC;AAAA,EAClB,OAAO,eAAe;AAAA,EACtB,SAAS,MAAM;AAAA,EACf,UAAU,MAAM;AAAA,EAChB,WAAW,MAAM;AAAA,EACjB,WAAW,MAAM;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ,CAAC;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,mBAAmB;AACrB,MAAM;AACJ,QAAM,CAAC,EAAE,OAAO,OAAO,GAAG,QAAQ,IAAI,SAAS;AAAA,IAC7C,OAAO;AAAA,IACP,QAAQ,CAAC;AAAA,EACX,CAAC;AACD,QAAM,oBAAoB,OAAO;AAEjC,QAAM,SACJ
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -50,129 +50,119 @@ class DSCodeEditorForm extends Component {
|
|
|
50
50
|
render() {
|
|
51
51
|
const { fileName } = this.props;
|
|
52
52
|
const { find, replace, isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;
|
|
53
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
54
|
-
className:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
53
|
+
return /* @__PURE__ */ jsxs("div", { className: `${cssClassName}`, children: [
|
|
54
|
+
fileName ? /* @__PURE__ */ jsxs("div", { className: classNameBlock("file-name"), children: [
|
|
55
|
+
"File Name: ",
|
|
56
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
57
|
+
" ",
|
|
58
|
+
fileName,
|
|
59
|
+
" "
|
|
60
|
+
] })
|
|
61
|
+
] }) : null,
|
|
62
|
+
/* @__PURE__ */ jsxs("div", { className: classNameBlock("find-replace-btn"), children: [
|
|
63
|
+
!find && !replace ? /* @__PURE__ */ jsx(DSButton, { buttonType: "secondary", labelText: "Find", onClick: () => this.setState({ find: true }), size: "m" }) : null,
|
|
64
|
+
!replace ? /* @__PURE__ */ jsx(
|
|
65
|
+
DSButton,
|
|
66
|
+
{
|
|
67
|
+
buttonType: "secondary",
|
|
68
|
+
labelText: "Find & Replace",
|
|
69
|
+
onClick: () => this.setState({ replace: true }),
|
|
70
|
+
size: "m"
|
|
71
|
+
}
|
|
72
|
+
) : null
|
|
73
|
+
] }),
|
|
74
|
+
find || replace ? /* @__PURE__ */ jsxs(DSInputGroup, { className: classNameBlock("find"), children: [
|
|
75
|
+
/* @__PURE__ */ jsx(
|
|
76
|
+
DSTextBox,
|
|
77
|
+
{
|
|
78
|
+
className: "find-word",
|
|
79
|
+
fluidWidth: false,
|
|
80
|
+
id: "find-textbox",
|
|
81
|
+
onChange: (e) => this.setState({ filteredText: e.currentTarget.value }),
|
|
82
|
+
placeholder: "Find",
|
|
83
|
+
rightComponent: /* @__PURE__ */ jsxs("div", { className: classNameBlock("next-back-btn"), children: [
|
|
84
|
+
/* @__PURE__ */ jsx(DSButton, { icon: /* @__PURE__ */ jsx(ChevronSmallLeft, {}), size: "m" }),
|
|
85
|
+
/* @__PURE__ */ jsx(DSButton, { icon: /* @__PURE__ */ jsx(ChevronSmallRight, {}), onClick: () => this.searchWord(), size: "m" })
|
|
86
|
+
] }),
|
|
87
|
+
value: filteredText
|
|
88
|
+
}
|
|
89
|
+
),
|
|
90
|
+
/* @__PURE__ */ jsxs(CheckOptionsGroup, { children: [
|
|
91
|
+
/* @__PURE__ */ jsx(
|
|
92
|
+
DSCheckbox,
|
|
93
|
+
{
|
|
94
|
+
checked: isCaseSensitive,
|
|
95
|
+
id: "case-sensitive-check",
|
|
96
|
+
labelText: "Case Sensitive",
|
|
97
|
+
name: "case-sensitive-check",
|
|
98
|
+
onChange: () => this.setState({ isCaseSensitive: !isCaseSensitive })
|
|
99
|
+
}
|
|
100
|
+
),
|
|
101
|
+
/* @__PURE__ */ jsx(
|
|
102
|
+
DSCheckbox,
|
|
103
|
+
{
|
|
104
|
+
checked: isWholeWord,
|
|
105
|
+
id: "whole-word-check",
|
|
106
|
+
labelText: "Whole Word",
|
|
107
|
+
name: "whole-word-check",
|
|
108
|
+
onChange: () => this.setState({ isWholeWord: !isWholeWord })
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
/* @__PURE__ */ jsx(
|
|
112
|
+
DSCheckbox,
|
|
113
|
+
{
|
|
114
|
+
checked: replace,
|
|
115
|
+
id: "replace-check",
|
|
116
|
+
labelText: "Replace",
|
|
117
|
+
name: "replace-check",
|
|
118
|
+
onChange: () => this.setState({ replace: !replace })
|
|
119
|
+
}
|
|
120
|
+
)
|
|
121
|
+
] }),
|
|
122
|
+
/* @__PURE__ */ jsx(
|
|
123
|
+
DSButton,
|
|
124
|
+
{
|
|
125
|
+
buttonType: "secondary",
|
|
126
|
+
labelText: "Done",
|
|
127
|
+
onClick: () => this.setState({ replace: false, find: false }),
|
|
128
|
+
size: "m"
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
] }) : null,
|
|
132
|
+
replace ? /* @__PURE__ */ jsxs("div", { className: classNameBlock("replace"), children: [
|
|
133
|
+
/* @__PURE__ */ jsx(
|
|
134
|
+
DSTextBox,
|
|
135
|
+
{
|
|
136
|
+
className: "find-word",
|
|
137
|
+
fluidWidth: false,
|
|
138
|
+
id: "replace-textbox",
|
|
139
|
+
onChange: (e) => this.setState({ replaceText: e.currentTarget.value }),
|
|
140
|
+
placeholder: "Replace",
|
|
141
|
+
value: replaceText
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
/* @__PURE__ */ jsxs("div", { className: classNameBlock("replace-btns"), children: [
|
|
145
|
+
/* @__PURE__ */ jsx(
|
|
146
|
+
DSButton,
|
|
147
|
+
{
|
|
73
148
|
buttonType: "secondary",
|
|
74
|
-
labelText: "
|
|
75
|
-
onClick: () => this.
|
|
149
|
+
labelText: "Replace",
|
|
150
|
+
onClick: () => this.searchWord(true, false),
|
|
76
151
|
size: "m"
|
|
77
|
-
}
|
|
78
|
-
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
/* @__PURE__ */ jsx(
|
|
155
|
+
DSButton,
|
|
156
|
+
{
|
|
79
157
|
buttonType: "secondary",
|
|
80
|
-
labelText: "
|
|
81
|
-
onClick: () => this.
|
|
158
|
+
labelText: "Replace All",
|
|
159
|
+
onClick: () => this.searchWord(true, true),
|
|
82
160
|
size: "m"
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
children: [
|
|
89
|
-
/* @__PURE__ */ jsx(DSTextBox, {
|
|
90
|
-
className: "find-word",
|
|
91
|
-
fluidWidth: false,
|
|
92
|
-
id: "find-textbox",
|
|
93
|
-
onChange: (e) => this.setState({ filteredText: e.currentTarget.value }),
|
|
94
|
-
placeholder: "Find",
|
|
95
|
-
rightComponent: /* @__PURE__ */ jsxs("div", {
|
|
96
|
-
className: classNameBlock("next-back-btn"),
|
|
97
|
-
children: [
|
|
98
|
-
/* @__PURE__ */ jsx(DSButton, {
|
|
99
|
-
icon: /* @__PURE__ */ jsx(ChevronSmallLeft, {}),
|
|
100
|
-
size: "m"
|
|
101
|
-
}),
|
|
102
|
-
/* @__PURE__ */ jsx(DSButton, {
|
|
103
|
-
icon: /* @__PURE__ */ jsx(ChevronSmallRight, {}),
|
|
104
|
-
onClick: () => this.searchWord(),
|
|
105
|
-
size: "m"
|
|
106
|
-
})
|
|
107
|
-
]
|
|
108
|
-
}),
|
|
109
|
-
value: filteredText
|
|
110
|
-
}),
|
|
111
|
-
/* @__PURE__ */ jsxs(CheckOptionsGroup, {
|
|
112
|
-
children: [
|
|
113
|
-
/* @__PURE__ */ jsx(DSCheckbox, {
|
|
114
|
-
checked: isCaseSensitive,
|
|
115
|
-
id: "case-sensitive-check",
|
|
116
|
-
labelText: "Case Sensitive",
|
|
117
|
-
name: "case-sensitive-check",
|
|
118
|
-
onChange: () => this.setState({ isCaseSensitive: !isCaseSensitive })
|
|
119
|
-
}),
|
|
120
|
-
/* @__PURE__ */ jsx(DSCheckbox, {
|
|
121
|
-
checked: isWholeWord,
|
|
122
|
-
id: "whole-word-check",
|
|
123
|
-
labelText: "Whole Word",
|
|
124
|
-
name: "whole-word-check",
|
|
125
|
-
onChange: () => this.setState({ isWholeWord: !isWholeWord })
|
|
126
|
-
}),
|
|
127
|
-
/* @__PURE__ */ jsx(DSCheckbox, {
|
|
128
|
-
checked: replace,
|
|
129
|
-
id: "replace-check",
|
|
130
|
-
labelText: "Replace",
|
|
131
|
-
name: "replace-check",
|
|
132
|
-
onChange: () => this.setState({ replace: !replace })
|
|
133
|
-
})
|
|
134
|
-
]
|
|
135
|
-
}),
|
|
136
|
-
/* @__PURE__ */ jsx(DSButton, {
|
|
137
|
-
buttonType: "secondary",
|
|
138
|
-
labelText: "Done",
|
|
139
|
-
onClick: () => this.setState({ replace: false, find: false }),
|
|
140
|
-
size: "m"
|
|
141
|
-
})
|
|
142
|
-
]
|
|
143
|
-
}) : null,
|
|
144
|
-
replace ? /* @__PURE__ */ jsxs("div", {
|
|
145
|
-
className: classNameBlock("replace"),
|
|
146
|
-
children: [
|
|
147
|
-
/* @__PURE__ */ jsx(DSTextBox, {
|
|
148
|
-
className: "find-word",
|
|
149
|
-
fluidWidth: false,
|
|
150
|
-
id: "replace-textbox",
|
|
151
|
-
onChange: (e) => this.setState({ replaceText: e.currentTarget.value }),
|
|
152
|
-
placeholder: "Replace",
|
|
153
|
-
value: replaceText
|
|
154
|
-
}),
|
|
155
|
-
/* @__PURE__ */ jsxs("div", {
|
|
156
|
-
className: classNameBlock("replace-btns"),
|
|
157
|
-
children: [
|
|
158
|
-
/* @__PURE__ */ jsx(DSButton, {
|
|
159
|
-
buttonType: "secondary",
|
|
160
|
-
labelText: "Replace",
|
|
161
|
-
onClick: () => this.searchWord(true, false),
|
|
162
|
-
size: "m"
|
|
163
|
-
}),
|
|
164
|
-
/* @__PURE__ */ jsx(DSButton, {
|
|
165
|
-
buttonType: "secondary",
|
|
166
|
-
labelText: "Replace All",
|
|
167
|
-
onClick: () => this.searchWord(true, true),
|
|
168
|
-
size: "m"
|
|
169
|
-
})
|
|
170
|
-
]
|
|
171
|
-
})
|
|
172
|
-
]
|
|
173
|
-
}) : null
|
|
174
|
-
]
|
|
175
|
-
});
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] })
|
|
164
|
+
] }) : null
|
|
165
|
+
] });
|
|
176
166
|
}
|
|
177
167
|
}
|
|
178
168
|
var DSCodeEditorForm_default = DSCodeEditorForm;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/DSCodeEditorForm.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport DSButton from '@elliemae/ds-button';\nimport { DSCheckbox, DSTextBox, DSInputGroup } from '@elliemae/ds-form';\nimport { convertPropToCssClassName, aggregatedClasses } from '@elliemae/ds-classnames';\nimport { ChevronSmallLeft, ChevronSmallRight } from '@elliemae/ds-icons';\n\nconst blockName = 'code-editor';\n\nconst { cssClassName, classNameBlock } = convertPropToCssClassName(blockName);\n\nconst CheckOptionsGroup = aggregatedClasses('div')(`${blockName}-options-group`);\n\nclass DSCodeEditorForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n find: false,\n replace: false,\n isCaseSensitive: false,\n isWholeWord: false,\n filteredText: '',\n replaceText: '',\n };\n\n this.searchWord = this.searchWord.bind(this);\n }\n\n searchWord(isReplace, all) {\n const {\n reactAceComponent: {\n current: { editor },\n },\n } = this.props;\n const { isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;\n const options = {\n backwards: false,\n wrap: true,\n caseSensitive: isCaseSensitive,\n wholeWord: isWholeWord,\n regExp: true,\n };\n editor.find(filteredText, options);\n const selectedContent = editor.getSelectedText();\n if (isReplace && replaceText && selectedContent) {\n if (all) {\n editor.findAll(filteredText, options);\n editor.replaceAll(replaceText);\n } else {\n const range = editor.selection.getRange();\n editor.session.replace(range, replaceText);\n }\n }\n }\n\n render() {\n const { fileName } = this.props;\n\n const { find, replace, isCaseSensitive, isWholeWord, filteredText, replaceText } = this.state;\n return (\n <div className={`${cssClassName}`}>\n {fileName ? (\n <div className={classNameBlock('file-name')}>\n File Name: <span> {fileName} </span>\n </div>\n ) : null}\n <div className={classNameBlock('find-replace-btn')}>\n {!find && !replace ? (\n <DSButton buttonType=\"secondary\" labelText=\"Find\" onClick={() => this.setState({ find: true })} size=\"m\" />\n ) : null}\n {!replace ? (\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Find & Replace\"\n onClick={() => this.setState({ replace: true })}\n size=\"m\"\n />\n ) : null}\n </div>\n {find || replace ? (\n <DSInputGroup className={classNameBlock('find')}>\n <DSTextBox\n className=\"find-word\"\n fluidWidth={false}\n id=\"find-textbox\"\n onChange={(e) => this.setState({ filteredText: e.currentTarget.value })}\n placeholder=\"Find\"\n rightComponent={\n <div className={classNameBlock('next-back-btn')}>\n <DSButton icon={<ChevronSmallLeft />} size=\"m\" />\n <DSButton icon={<ChevronSmallRight />} onClick={() => this.searchWord()} size=\"m\" />\n </div>\n }\n value={filteredText}\n />\n <CheckOptionsGroup>\n <DSCheckbox\n checked={isCaseSensitive}\n id=\"case-sensitive-check\"\n labelText=\"Case Sensitive\"\n name=\"case-sensitive-check\"\n onChange={() => this.setState({ isCaseSensitive: !isCaseSensitive })}\n />\n <DSCheckbox\n checked={isWholeWord}\n id=\"whole-word-check\"\n labelText=\"Whole Word\"\n name=\"whole-word-check\"\n onChange={() => this.setState({ isWholeWord: !isWholeWord })}\n />\n <DSCheckbox\n checked={replace}\n id=\"replace-check\"\n labelText=\"Replace\"\n name=\"replace-check\"\n onChange={() => this.setState({ replace: !replace })}\n />\n </CheckOptionsGroup>\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Done\"\n onClick={() => this.setState({ replace: false, find: false })}\n size=\"m\"\n />\n </DSInputGroup>\n ) : null}\n {replace ? (\n <div className={classNameBlock('replace')}>\n <DSTextBox\n className=\"find-word\"\n fluidWidth={false}\n id=\"replace-textbox\"\n onChange={(e) => this.setState({ replaceText: e.currentTarget.value })}\n placeholder=\"Replace\"\n value={replaceText}\n />\n <div className={classNameBlock('replace-btns')}>\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Replace\"\n onClick={() => this.searchWord(true, false)}\n size=\"m\"\n />\n <DSButton\n buttonType=\"secondary\"\n labelText=\"Replace All\"\n onClick={() => this.searchWord(true, true)}\n size=\"m\"\n />\n </div>\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport default DSCodeEditorForm;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACgEA,SAKX,KALW;AA9DvB,SAAgB,iBAAiB;AACjC,OAAO,cAAc;AACrB,SAAS,YAAY,WAAW,oBAAoB;AACpD,SAAS,2BAA2B,yBAAyB;AAC7D,SAAS,kBAAkB,yBAAyB;AAEpD,MAAM,YAAY;AAElB,MAAM,EAAE,cAAc,eAAe,IAAI,0BAA0B,SAAS;AAE5E,MAAM,oBAAoB,kBAAkB,KAAK,EAAE,GAAG,yBAAyB;AAE/E,MAAM,yBAAyB,UAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AAEA,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAAA,EAC7C;AAAA,EAEA,WAAW,WAAW,KAAK;AACzB,UAAM;AAAA,MACJ,mBAAmB;AAAA,QACjB,SAAS,EAAE,OAAO;AAAA,MACpB;AAAA,IACF,IAAI,KAAK;AACT,UAAM,EAAE,iBAAiB,aAAa,cAAc,YAAY,IAAI,KAAK;AACzE,UAAM,UAAU;AAAA,MACd,WAAW;AAAA,MACX,MAAM;AAAA,MACN,eAAe;AAAA,MACf,WAAW;AAAA,MACX,QAAQ;AAAA,IACV;AACA,WAAO,KAAK,cAAc,OAAO;AACjC,UAAM,kBAAkB,OAAO,gBAAgB;AAC/C,QAAI,aAAa,eAAe,iBAAiB;AAC/C,UAAI,KAAK;AACP,eAAO,QAAQ,cAAc,OAAO;AACpC,eAAO,WAAW,WAAW;AAAA,MAC/B,OAAO;AACL,cAAM,QAAQ,OAAO,UAAU,SAAS;AACxC,eAAO,QAAQ,QAAQ,OAAO,WAAW;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,UAAM,EAAE,MAAM,SAAS,iBAAiB,aAAa,cAAc,YAAY,IAAI,KAAK;AACxF,WACE,qBAAC
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -33,38 +33,41 @@ class DSCodeEditorImpl extends Component {
|
|
|
33
33
|
containerProps
|
|
34
34
|
} = this.props;
|
|
35
35
|
const { value, errors } = this.state;
|
|
36
|
-
return /* @__PURE__ */ jsxs(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
reactAceComponent: this.reactAceComponent
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
37
|
+
DSModal,
|
|
38
|
+
{
|
|
39
|
+
centered: false,
|
|
40
|
+
confirmLabel,
|
|
41
|
+
containerProps,
|
|
42
|
+
isOpen,
|
|
43
|
+
modalTitle,
|
|
44
|
+
modalType,
|
|
45
|
+
onClose: () => onClose(value, fileName, errors),
|
|
46
|
+
onConfirm: () => onSave(value, fileName, errors),
|
|
47
|
+
onReject: () => onReject(value, fileName, errors),
|
|
48
|
+
rejectLabel,
|
|
49
|
+
size,
|
|
50
|
+
style,
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsx(DSCodeEditorForm, { fileName, reactAceComponent: this.reactAceComponent }),
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
AceEditor,
|
|
55
|
+
{
|
|
56
|
+
ref: this.reactAceComponent,
|
|
57
|
+
editorProps: { $blockScrolling: true },
|
|
58
|
+
maxLines,
|
|
59
|
+
minLines,
|
|
60
|
+
mode: "javascript",
|
|
61
|
+
name: "ace-code-edior",
|
|
62
|
+
onChange: (val) => this.setState({ value: val }),
|
|
63
|
+
onValidate: (annotations) => this.setState({ errors: annotations }),
|
|
64
|
+
theme: "tomorrow",
|
|
65
|
+
value
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
);
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
73
|
var DSCodeEditorImpl_default = DSCodeEditorImpl;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/DSCodeEditorImpl.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { Component } from 'react';\nimport AceEditor from 'react-ace';\nimport DSModal from '@elliemae/ds-modal';\nimport DSCodeEditorForm from './DSCodeEditorForm';\nimport 'brace/mode/javascript.js';\nimport 'brace/theme/tomorrow.js';\n\nclass DSCodeEditorImpl extends Component {\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n errors: [],\n };\n this.reactAceComponent = React.createRef();\n }\n\n render() {\n const {\n onSave,\n onClose,\n onReject,\n isOpen,\n fileName,\n confirmLabel,\n maxLines,\n minLines,\n modalTitle,\n modalType,\n rejectLabel,\n size,\n style,\n containerProps,\n } = this.props;\n\n const { value, errors } = this.state;\n return (\n <DSModal\n centered={false}\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onClose={() => onClose(value, fileName, errors)}\n onConfirm={() => onSave(value, fileName, errors)}\n onReject={() => onReject(value, fileName, errors)}\n rejectLabel={rejectLabel}\n size={size}\n style={style}\n >\n <DSCodeEditorForm fileName={fileName} reactAceComponent={this.reactAceComponent} />\n <AceEditor\n ref={this.reactAceComponent}\n editorProps={{ $blockScrolling: true }}\n maxLines={maxLines}\n minLines={minLines}\n mode=\"javascript\"\n name=\"ace-code-edior\"\n onChange={(val) => this.setState({ value: val })}\n onValidate={(annotations) => this.setState({ errors: annotations })}\n theme=\"tomorrow\"\n value={value}\n />\n </DSModal>\n );\n }\n}\n\nexport default DSCodeEditorImpl;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACqCjB,SAcE,KAdF;AArCN,OAAOA,UAAS,iBAAiB;AACjC,OAAO,eAAe;AACtB,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO;AACP,OAAO;AAEP,MAAM,yBAAyB,UAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,MACb,QAAQ,CAAC;AAAA,IACX;AACA,SAAK,oBAAoBA,OAAM,UAAU;AAAA,EAC3C;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,KAAK;AAET,UAAM,EAAE,OAAO,OAAO,IAAI,KAAK;AAC/B,WACE,
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACqCjB,SAcE,KAdF;AArCN,OAAOA,UAAS,iBAAiB;AACjC,OAAO,eAAe;AACtB,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO;AACP,OAAO;AAEP,MAAM,yBAAyB,UAAU;AAAA,EACvC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,MACb,QAAQ,CAAC;AAAA,IACX;AACA,SAAK,oBAAoBA,OAAM,UAAU;AAAA,EAC3C;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,KAAK;AAET,UAAM,EAAE,OAAO,OAAO,IAAI,KAAK;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,MAAM,QAAQ,OAAO,UAAU,MAAM;AAAA,QAC9C,WAAW,MAAM,OAAO,OAAO,UAAU,MAAM;AAAA,QAC/C,UAAU,MAAM,SAAS,OAAO,UAAU,MAAM;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,oBAAiB,UAAoB,mBAAmB,KAAK,mBAAmB;AAAA,UACjF;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,aAAa,EAAE,iBAAiB,KAAK;AAAA,cACrC;AAAA,cACA;AAAA,cACA,MAAK;AAAA,cACL,MAAK;AAAA,cACL,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,cAC/C,YAAY,CAAC,gBAAgB,KAAK,SAAS,EAAE,QAAQ,YAAY,CAAC;AAAA,cAClE,OAAM;AAAA,cACN;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,IAAO,2BAAQ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-codeeditor",
|
|
3
|
-
"version": "3.12.0-rc.
|
|
3
|
+
"version": "3.12.0-rc.20",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Code Editor",
|
|
6
6
|
"files": [
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
"indent": 4
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@elliemae/ds-button": "3.12.0-rc.2",
|
|
51
|
-
"@elliemae/ds-classnames": "3.12.0-rc.2",
|
|
52
|
-
"@elliemae/ds-form": "3.12.0-rc.2",
|
|
53
|
-
"@elliemae/ds-icons": "3.12.0-rc.2",
|
|
54
|
-
"@elliemae/ds-modal": "3.12.0-rc.2",
|
|
55
|
-
"@elliemae/ds-utilities": "3.12.0-rc.2",
|
|
56
50
|
"brace": "~0.11.1",
|
|
57
|
-
"react-ace": "~10.1.0"
|
|
51
|
+
"react-ace": "~10.1.0",
|
|
52
|
+
"@elliemae/ds-button": "3.12.0-rc.20",
|
|
53
|
+
"@elliemae/ds-classnames": "3.12.0-rc.20",
|
|
54
|
+
"@elliemae/ds-modal": "3.12.0-rc.20",
|
|
55
|
+
"@elliemae/ds-utilities": "3.12.0-rc.20",
|
|
56
|
+
"@elliemae/ds-form": "3.12.0-rc.20",
|
|
57
|
+
"@elliemae/ds-icons": "3.12.0-rc.20"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"lodash": "^4.17.21",
|