Refactor ace editor component
This commit is contained in:
parent
d539f56406
commit
ad64c547a2
@ -45,7 +45,6 @@
|
|||||||
"vue-echarts": "6.7.3",
|
"vue-echarts": "6.7.3",
|
||||||
"vue-native-websocket": "^2.0.15",
|
"vue-native-websocket": "^2.0.15",
|
||||||
"vue-router": "3.1.5",
|
"vue-router": "3.1.5",
|
||||||
"vue2-brace-editor": "^2.0.2",
|
|
||||||
"vue2-dropzone": "^3.6.0",
|
"vue2-dropzone": "^3.6.0",
|
||||||
"vuedraggable": "^2.23.2",
|
"vuedraggable": "^2.23.2",
|
||||||
"vuex": "3.1.2"
|
"vuex": "3.1.2"
|
||||||
|
|||||||
@ -214,7 +214,7 @@
|
|||||||
<b-card
|
<b-card
|
||||||
header-class="border-bottom"
|
header-class="border-bottom"
|
||||||
body-class="p-0"
|
body-class="p-0"
|
||||||
class="shadow-sm mt-3"
|
class="shadow-sm mt-3 overflow-hidden"
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
<h4 class="m-0">
|
<h4 class="m-0">
|
||||||
@ -222,34 +222,23 @@
|
|||||||
</h4>
|
</h4>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
:font-size="14"
|
|
||||||
width="100%"
|
|
||||||
mode="json"
|
|
||||||
theme="chrome"
|
|
||||||
show-print-margin
|
|
||||||
read-only
|
|
||||||
show-gutter
|
|
||||||
highlight-active-line
|
|
||||||
:value="request.body"
|
:value="request.body"
|
||||||
:editor-props="{
|
:border="false"
|
||||||
$blockScrolling: false,
|
lang="json"
|
||||||
}"
|
height="400px"
|
||||||
:set-options="{
|
show-line-numbers
|
||||||
useWorker: false,
|
read-only
|
||||||
}"
|
|
||||||
class="border-0 rounded-0"
|
|
||||||
/>
|
/>
|
||||||
</b-card>
|
</b-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
import { fmt, NoID } from '@cortezaproject/corteza-js'
|
import { fmt, NoID } from '@cortezaproject/corteza-js'
|
||||||
import { Ace as AceEditor } from 'vue2-brace-editor'
|
|
||||||
|
|
||||||
import 'brace/mode/json'
|
const { CAceEditor } = components
|
||||||
import 'brace/theme/chrome'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CProfilerHitInfo',
|
name: 'CProfilerHitInfo',
|
||||||
@ -260,7 +249,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -48,23 +48,15 @@
|
|||||||
:label="$t('image.editor.label')"
|
:label="$t('image.editor.label')"
|
||||||
label-class="d-flex align-items-center text-primary"
|
label-class="d-flex align-items-center text-primary"
|
||||||
>
|
>
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
|
v-model="settings['auth.ui.styles']"
|
||||||
data-test-id="auth-bg-image-styling-editor"
|
data-test-id="auth-bg-image-styling-editor"
|
||||||
:font-size="14"
|
|
||||||
:show-print-margin="true"
|
|
||||||
:show-gutter="true"
|
|
||||||
:highlight-active-line="true"
|
|
||||||
mode="css"
|
|
||||||
theme="chrome"
|
|
||||||
height="h-100"
|
|
||||||
name="editor/css"
|
name="editor/css"
|
||||||
:on-change="v => (settings['auth.ui.styles'] = v)"
|
lang="css"
|
||||||
:value="settings['auth.ui.styles']"
|
height="300px"
|
||||||
:editor-props="{
|
font-size="14px"
|
||||||
$blockScrolling: false
|
show-line-numbers
|
||||||
}"
|
|
||||||
class="flex-fill w-100"
|
class="flex-fill w-100"
|
||||||
style="min-height: 300px;"
|
|
||||||
/>
|
/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
@ -84,12 +76,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import 'brace/mode/css'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
import 'brace/theme/chrome'
|
|
||||||
|
|
||||||
import { Ace as AceEditor } from 'vue2-brace-editor'
|
|
||||||
import CUploaderWithPreview from 'corteza-webapp-admin/src/components/CUploaderWithPreview'
|
import CUploaderWithPreview from 'corteza-webapp-admin/src/components/CUploaderWithPreview'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CSystemEditorAuthBgImage',
|
name: 'CSystemEditorAuthBgImage',
|
||||||
|
|
||||||
@ -100,7 +91,7 @@ export default {
|
|||||||
|
|
||||||
components: {
|
components: {
|
||||||
CUploaderWithPreview,
|
CUploaderWithPreview,
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -1,32 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
|
v-model="template.template"
|
||||||
data-test-id="template-html-editor"
|
data-test-id="template-html-editor"
|
||||||
:font-size="14"
|
|
||||||
:show-print-margin="true"
|
|
||||||
:show-gutter="true"
|
|
||||||
:highlight-active-line="true"
|
|
||||||
width="100%"
|
|
||||||
mode="html"
|
|
||||||
theme="chrome"
|
|
||||||
name="editor/html"
|
name="editor/html"
|
||||||
:on-change="(v) => template.template = v"
|
lang="html"
|
||||||
:value="template.template"
|
height="400px"
|
||||||
:editor-props="{
|
show-line-numbers
|
||||||
$blockScrolling: false,
|
highlight-active-line
|
||||||
}"
|
show-print-margin
|
||||||
class="border-0 rounded-0"
|
:border="false"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Ace as AceEditor } from 'vue2-brace-editor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
import 'brace/mode/html'
|
const { CAceEditor } = components
|
||||||
import 'brace/theme/chrome'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -1,32 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
|
v-model="template.template"
|
||||||
data-test-id="template-plain-text-editor"
|
data-test-id="template-plain-text-editor"
|
||||||
:font-size="14"
|
|
||||||
:show-print-margin="true"
|
|
||||||
:show-gutter="true"
|
|
||||||
:highlight-active-line="true"
|
|
||||||
width="100%"
|
|
||||||
mode="plain_text"
|
|
||||||
theme="chrome"
|
|
||||||
name="editor/plain_text"
|
name="editor/plain_text"
|
||||||
:on-change="(v) => template.template = v"
|
lang="plain_text"
|
||||||
:value="template.template"
|
height="400px"
|
||||||
:editor-props="{
|
font-size="14px"
|
||||||
$blockScrolling: false,
|
show-line-numbers
|
||||||
}"
|
|
||||||
class="border-0 rounded-0"
|
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Ace as AceEditor } from 'vue2-brace-editor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
import 'brace/mode/plain_text'
|
const { CAceEditor } = components
|
||||||
import 'brace/theme/chrome'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -63,23 +63,16 @@
|
|||||||
class="shadow-sm mt-3"
|
class="shadow-sm mt-3"
|
||||||
>
|
>
|
||||||
<!-- Partial templates can't be previewed -->
|
<!-- Partial templates can't be previewed -->
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
|
v-model="previewData"
|
||||||
data-test-id="template-preview-output"
|
data-test-id="template-preview-output"
|
||||||
:font-size="14"
|
|
||||||
:show-print-margin="true"
|
|
||||||
:show-gutter="true"
|
|
||||||
:highlight-active-line="true"
|
|
||||||
width="100%"
|
|
||||||
height="500px"
|
|
||||||
mode="json"
|
|
||||||
theme="chrome"
|
|
||||||
name="preview-data"
|
name="preview-data"
|
||||||
:on-change="(v) => previewData = v"
|
lang="json"
|
||||||
:value="previewData"
|
height="500px"
|
||||||
:editor-props="{
|
show-line-numbers
|
||||||
$blockScrolling: false,
|
highlight-active-line
|
||||||
}"
|
show-print-margin
|
||||||
class="border-0 rounded-0"
|
:border="false"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<template #header>
|
<template #header>
|
||||||
@ -113,20 +106,19 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import 'brace/mode/json'
|
|
||||||
import 'brace/theme/chrome'
|
|
||||||
|
|
||||||
import listHelpers from 'corteza-webapp-admin/src/mixins/listHelpers'
|
import listHelpers from 'corteza-webapp-admin/src/mixins/listHelpers'
|
||||||
import EditorToolbox from './EditorToolbox'
|
import EditorToolbox from './EditorToolbox'
|
||||||
import EditorTextHtml from './EditorTextHtml'
|
import EditorTextHtml from './EditorTextHtml'
|
||||||
import EditorTextPlain from './EditorTextPlain'
|
import EditorTextPlain from './EditorTextPlain'
|
||||||
import EditorUnsupported from './EditorUnsupported'
|
import EditorUnsupported from './EditorUnsupported'
|
||||||
import { Ace as AceEditor } from 'vue2-brace-editor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
EditorToolbox,
|
EditorToolbox,
|
||||||
},
|
},
|
||||||
mixins: [
|
mixins: [
|
||||||
|
|||||||
@ -11818,13 +11818,6 @@ vue2-ace-editor@^0.0.15:
|
|||||||
dependencies:
|
dependencies:
|
||||||
brace "^0.11.0"
|
brace "^0.11.0"
|
||||||
|
|
||||||
vue2-brace-editor@^2.0.2:
|
|
||||||
version "2.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/vue2-brace-editor/-/vue2-brace-editor-2.0.2.tgz#d9cd06f201c3e7af8382fd14a3eb8c2c49971436"
|
|
||||||
integrity sha512-ADJo1dccmIjq3ZejUNFJT/GpTQV5+TPOkC7xArBbVooVSjL8NOgRbqQ1Ix1LEW2S0hgy1y2ac8VHpZZdV4hjug==
|
|
||||||
dependencies:
|
|
||||||
brace "^0.11.0"
|
|
||||||
|
|
||||||
vue2-dropzone@^3.6.0:
|
vue2-dropzone@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vue2-dropzone/-/vue2-dropzone-3.6.0.tgz#b4bb4b64de1cbbb3b88f04b24878e06780a51546"
|
resolved "https://registry.yarnpkg.com/vue2-dropzone/-/vue2-dropzone-3.6.0.tgz#b4bb4b64de1cbbb3b88f04b24878e06780a51546"
|
||||||
|
|||||||
@ -80,7 +80,6 @@
|
|||||||
"vue-router": "3.1.5",
|
"vue-router": "3.1.5",
|
||||||
"vue-sortable-tree": "^1.2.2",
|
"vue-sortable-tree": "^1.2.2",
|
||||||
"vue-tweet-embed": "^2.3.0",
|
"vue-tweet-embed": "^2.3.0",
|
||||||
"vue2-brace-editor": "^2.0.2",
|
|
||||||
"vue2-dropzone": "^3.6.0",
|
"vue2-dropzone": "^3.6.0",
|
||||||
"vuedraggable": "^2.23.0",
|
"vuedraggable": "^2.23.0",
|
||||||
"vuex": "^3.1.1",
|
"vuex": "^3.1.1",
|
||||||
|
|||||||
@ -12520,13 +12520,6 @@ vue2-ace-editor@^0.0.15:
|
|||||||
dependencies:
|
dependencies:
|
||||||
brace "^0.11.0"
|
brace "^0.11.0"
|
||||||
|
|
||||||
vue2-brace-editor@^2.0.2:
|
|
||||||
version "2.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/vue2-brace-editor/-/vue2-brace-editor-2.0.2.tgz#d9cd06f201c3e7af8382fd14a3eb8c2c49971436"
|
|
||||||
integrity sha512-ADJo1dccmIjq3ZejUNFJT/GpTQV5+TPOkC7xArBbVooVSjL8NOgRbqQ1Ix1LEW2S0hgy1y2ac8VHpZZdV4hjug==
|
|
||||||
dependencies:
|
|
||||||
brace "^0.11.0"
|
|
||||||
|
|
||||||
vue2-dropzone@^3.6.0:
|
vue2-dropzone@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vue2-dropzone/-/vue2-dropzone-3.6.0.tgz#b4bb4b64de1cbbb3b88f04b24878e06780a51546"
|
resolved "https://registry.yarnpkg.com/vue2-dropzone/-/vue2-dropzone-3.6.0.tgz#b4bb4b64de1cbbb3b88f04b24878e06780a51546"
|
||||||
|
|||||||
@ -27,7 +27,6 @@
|
|||||||
"v-jsoneditor": "^1.4.2",
|
"v-jsoneditor": "^1.4.2",
|
||||||
"vue": "2.6.14",
|
"vue": "2.6.14",
|
||||||
"vue-router": "3.1.5",
|
"vue-router": "3.1.5",
|
||||||
"vue2-ace-editor": "^0.0.15",
|
|
||||||
"vuedraggable": "^2.23.0",
|
"vuedraggable": "^2.23.0",
|
||||||
"vuex": "^3.6.2"
|
"vuex": "^3.6.2"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -21,8 +21,8 @@
|
|||||||
label-class="text-primary"
|
label-class="text-primary"
|
||||||
class="mb-0"
|
class="mb-0"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
:value.sync="item.config.arguments[0].expr"
|
v-model="item.config.arguments[0].expr"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
font-size="18px"
|
font-size="18px"
|
||||||
show-line-numbers
|
show-line-numbers
|
||||||
@ -37,11 +37,13 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import base from './base'
|
import base from './base'
|
||||||
import ExpressionEditor from '../ExpressionEditor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
extends: base,
|
extends: base,
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
label-class="text-primary"
|
label-class="text-primary"
|
||||||
class="mb-0"
|
class="mb-0"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
v-model="item.config.arguments[0].expr"
|
v-model="item.config.arguments[0].expr"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
font-size="18px"
|
font-size="18px"
|
||||||
@ -44,7 +44,7 @@
|
|||||||
@ok="saveExpression"
|
@ok="saveExpression"
|
||||||
@hidden="resetExpression"
|
@hidden="resetExpression"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
v-model="expressionEditor.currentExpression"
|
v-model="expressionEditor.currentExpression"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
height="500"
|
height="500"
|
||||||
@ -59,11 +59,13 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import base from './base'
|
import base from './base'
|
||||||
import ExpressionEditor from '../ExpressionEditor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
extends: base,
|
extends: base,
|
||||||
|
|||||||
@ -61,8 +61,8 @@
|
|||||||
@ok="saveExpression"
|
@ok="saveExpression"
|
||||||
@hidden="resetExpression"
|
@hidden="resetExpression"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
:value.sync="currentExpressionValue"
|
v-model="currentExpressionValue"
|
||||||
height="500"
|
height="500"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
font-size="18px"
|
font-size="18px"
|
||||||
@ -76,12 +76,14 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import base from './base'
|
import base from './base'
|
||||||
import ExpressionEditor from '../ExpressionEditor.vue'
|
|
||||||
import ExpressionTable from '../ExpressionTable.vue'
|
import ExpressionTable from '../ExpressionTable.vue'
|
||||||
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
ExpressionTable,
|
ExpressionTable,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -157,17 +157,17 @@
|
|||||||
{{ a.target }}
|
{{ a.target }}
|
||||||
</b-form-checkbox>
|
</b-form-checkbox>
|
||||||
|
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
v-else
|
v-else
|
||||||
:value.sync="a.value"
|
v-model="a.value"
|
||||||
@open="openInEditor(index)"
|
@open="openInEditor(index)"
|
||||||
@input="$root.$emit('change-detected')"
|
@input="$root.$emit('change-detected')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
v-else-if="a.valueType === 'expr'"
|
v-else-if="a.valueType === 'expr'"
|
||||||
:value.sync="a.expr"
|
v-model="a.expr"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
show-line-numbers
|
show-line-numbers
|
||||||
@open="openInEditor(index)"
|
@open="openInEditor(index)"
|
||||||
@ -304,8 +304,8 @@
|
|||||||
@ok="saveExpression"
|
@ok="saveExpression"
|
||||||
@hidden="resetExpression"
|
@hidden="resetExpression"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
:value.sync="currentExpressionValue"
|
v-model="currentExpressionValue"
|
||||||
:lang="expressionEditor.lang"
|
:lang="expressionEditor.lang"
|
||||||
height="500"
|
height="500"
|
||||||
font-size="18px"
|
font-size="18px"
|
||||||
@ -319,13 +319,15 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import base from './base'
|
import base from './base'
|
||||||
import ExpressionEditor from '../ExpressionEditor.vue'
|
|
||||||
import ExpressionTable from '../ExpressionTable.vue'
|
import ExpressionTable from '../ExpressionTable.vue'
|
||||||
import { objectSearchMaker, stringSearchMaker } from '../../lib/filter'
|
import { objectSearchMaker, stringSearchMaker } from '../../lib/filter'
|
||||||
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
ExpressionTable,
|
ExpressionTable,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -33,8 +33,8 @@
|
|||||||
:label="edge.value"
|
:label="edge.value"
|
||||||
label-class="text-primary"
|
label-class="text-primary"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
:value.sync="edge.expr"
|
v-model="edge.expr"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
height="100"
|
height="100"
|
||||||
show-line-numbers
|
show-line-numbers
|
||||||
@ -50,11 +50,13 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import base from './base'
|
import base from './base'
|
||||||
import ExpressionEditor from '../ExpressionEditor.vue'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
extends: base,
|
extends: base,
|
||||||
|
|||||||
@ -2,37 +2,26 @@
|
|||||||
<div
|
<div
|
||||||
class="position-relative"
|
class="position-relative"
|
||||||
>
|
>
|
||||||
<ace-editor
|
<c-ace-editor
|
||||||
v-model="expressionValue"
|
v-model="expressionValue"
|
||||||
:lang="lang"
|
:lang="lang"
|
||||||
:mode="lang"
|
|
||||||
theme="chrome"
|
|
||||||
width="100%"
|
|
||||||
:height="height"
|
:height="height"
|
||||||
:class="{ 'border-0 rounded-0': !border }"
|
:show-line-numbers="showLineNumbers"
|
||||||
|
:font-size="fontSize"
|
||||||
|
:show-popout="showPopout"
|
||||||
v-on="$listeners"
|
v-on="$listeners"
|
||||||
@init="editorInit"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<b-button
|
|
||||||
v-if="showPopout"
|
|
||||||
variant="link"
|
|
||||||
class="popout position-absolute px-2 py-1"
|
|
||||||
@click="$emit('open')"
|
|
||||||
>
|
|
||||||
<font-awesome-icon
|
|
||||||
:icon="['fas', 'expand-alt']"
|
|
||||||
/>
|
|
||||||
</b-button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AceEditor from 'vue2-ace-editor'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
AceEditor,
|
CAceEditor,
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
@ -83,25 +72,6 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
|
||||||
editorInit (editor) {
|
|
||||||
require('brace/mode/text')
|
|
||||||
require('brace/mode/javascript')
|
|
||||||
require('brace/theme/chrome')
|
|
||||||
|
|
||||||
editor.setOptions({
|
|
||||||
tabSize: 2,
|
|
||||||
fontSize: this.fontSize,
|
|
||||||
wrap: true,
|
|
||||||
indentedSoftWrap: false,
|
|
||||||
showLineNumbers: this.showLineNumbers,
|
|
||||||
showGutter: this.showLineNumbers,
|
|
||||||
displayIndentGuides: this.lang !== 'text',
|
|
||||||
useWorker: false,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -97,8 +97,8 @@
|
|||||||
<b-form-group
|
<b-form-group
|
||||||
class="mb-0"
|
class="mb-0"
|
||||||
>
|
>
|
||||||
<expression-editor
|
<c-ace-editor
|
||||||
:value.sync="item[valueField]"
|
v-model="item[valueField]"
|
||||||
lang="javascript"
|
lang="javascript"
|
||||||
show-line-numbers
|
show-line-numbers
|
||||||
@open="$emit('open-editor', index)"
|
@open="$emit('open-editor', index)"
|
||||||
@ -114,13 +114,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ExpressionEditor from './ExpressionEditor.vue'
|
import { components } from '@cortezaproject/corteza-vue'
|
||||||
import { objectSearchMaker } from '../lib/filter'
|
import { objectSearchMaker } from '../lib/filter'
|
||||||
import draggable from 'vuedraggable'
|
import draggable from 'vuedraggable'
|
||||||
|
|
||||||
|
const { CAceEditor } = components
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExpressionEditor,
|
CAceEditor,
|
||||||
draggable,
|
draggable,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -74,6 +74,21 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
readOnly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
highlightActiveLine: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
showPrintMargin: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
@ -94,6 +109,7 @@ export default {
|
|||||||
require('brace/mode/html')
|
require('brace/mode/html')
|
||||||
require('brace/mode/css')
|
require('brace/mode/css')
|
||||||
require('brace/mode/scss')
|
require('brace/mode/scss')
|
||||||
|
require('brace/mode/json')
|
||||||
require('brace/mode/javascript')
|
require('brace/mode/javascript')
|
||||||
require('brace/theme/chrome')
|
require('brace/theme/chrome')
|
||||||
|
|
||||||
@ -102,11 +118,13 @@ export default {
|
|||||||
fontSize: this.fontSize,
|
fontSize: this.fontSize,
|
||||||
wrap: true,
|
wrap: true,
|
||||||
indentedSoftWrap: false,
|
indentedSoftWrap: false,
|
||||||
showPrintMargin: false,
|
showPrintMargin: this.showPrintMargin,
|
||||||
showLineNumbers: this.showLineNumbers,
|
showLineNumbers: this.showLineNumbers,
|
||||||
showGutter: this.showLineNumbers,
|
showGutter: this.showLineNumbers,
|
||||||
displayIndentGuides: this.lang !== 'text',
|
displayIndentGuides: this.lang !== 'text',
|
||||||
useWorker: false,
|
useWorker: false,
|
||||||
|
readOnly: this.readOnly,
|
||||||
|
highlightActiveLine: this.highlightActiveLine
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -294,63 +294,6 @@ fieldset.required {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove from here when all ace-editors use c-ace-editor
|
|
||||||
.ace_editor {
|
|
||||||
color: var(--black) !important;
|
|
||||||
background-color: var(--white) !important;
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
border: 2px solid var(--extra-light);
|
|
||||||
|
|
||||||
.ace_cursor {
|
|
||||||
border-left: 2px solid var(--black);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_gutter {
|
|
||||||
background-color: var(--light) !important;
|
|
||||||
color: var(--black) !important;
|
|
||||||
|
|
||||||
.ace_gutter-active-line {
|
|
||||||
background-color: var(--extra-light) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_text {
|
|
||||||
color: var(--black) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_keyword {
|
|
||||||
color: var(--primary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_string {
|
|
||||||
color: var(--secondary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_variable {
|
|
||||||
color: var(--warning) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_type {
|
|
||||||
color: var(--secondary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_constant {
|
|
||||||
color: var(--primary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_tag {
|
|
||||||
color: var(--primary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_attribute {
|
|
||||||
color: var(--warning) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_comment {
|
|
||||||
color: var(--extra-light) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Supporting CSS to improve print-to-PDF option
|
// Supporting CSS to improve print-to-PDF option
|
||||||
@media print {
|
@media print {
|
||||||
@page {
|
@page {
|
||||||
@ -369,4 +312,4 @@ fieldset.required {
|
|||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user