Skip to content
Snippets Groups Projects
Select Git revision
  • 59e124942e2230020c91d503bf34971654f4c231
  • release default protected
  • workshop
3 results

ccs_function_lib.py

Blame
  • Raw.vue 1.59 KiB
    <template>
      <div>
        <editor
          v-model="content"
          :class="{ 'theme-dark': is_dark }"
          :value="value || content"
          lang="sql"
          theme="xcode"
          width="600"
          :height="height"
          @init="editorInit" />
      </div>
    </template>
    
    <script>
    export default {
      components: {
        editor: require('vue2-ace-editor')
      },
      props: {
        value: {
          type: String,
          default: () => ''
        },
        disabled: {
          type: Boolean,
          default: () => false
        }
      },
      data () {
        return {
          content: this.value
        }
      },
      computed: {
        height () {
          return 150
          // if (!this.disabled) { return 150 }
          // const numLines = this.value.split('\n').length
          // return numLines * 25
        },
        is_dark () {
          return this.$vuetify.theme.dark
        }
      },
      watch: {
        content (v) {
          this.$emit('input', v)
        },
        value (v) {
          this.content = v
        }
      },
      mounted () {
      },
      methods: {
        editorInit (editor) {
          editor.setOptions({
            fontSize: '12pt',
            readOnly: this.disabled,
            behavioursEnabled: !this.disabled
          })
          require('brace/ext/language_tools') // language extension prerequsite...
          require('brace/mode/html')
          require('brace/mode/sql') // language
          require('brace/mode/less')
          require('brace/theme/xcode')
          require('brace/snippets/sql') // snippet
          editor.renderer.setOptions({
            selectionStyle: 'text',
            showGutter: false
          })
          this.$emit('input', this.content)
        }
      }
    }
    </script>
    
    <style scoped>
    .theme-dark {
      background: none;
      color: white;
    }
    </style>