{"version":3,"file":"thescaffold-ngx-code-editor.mjs","sources":["../../../projects/code-editor/src/lib/action/action.base.ts","../../../projects/code-editor/src/lib/action/actions/clear.action.ts","../../../projects/code-editor/src/lib/action/actions/wrap.action.ts","../../../projects/code-editor/src/lib/action/actions/index.ts","../../../projects/code-editor/src/lib/action/action.component.ts","../../../projects/code-editor/src/lib/extension/index.ts","../../../projects/code-editor/src/lib/utils/config.ts","../../../projects/code-editor/src/lib/utils/editor.ts","../../../projects/code-editor/src/lib/extension/modes.ts","../../../projects/code-editor/src/lib/extension/themes.ts","../../../projects/code-editor/src/lib/editor/editor.component.ts","../../../projects/code-editor/src/lib/status/status.component.ts","../../../projects/code-editor/src/lib/code-editor.component.ts","../../../projects/code-editor/src/lib/code-editor.module.ts","../../../projects/code-editor/src/public-api.ts","../../../projects/code-editor/src/thescaffold-ngx-code-editor.ts"],"sourcesContent":["import { EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { ActionContract } from './action.contract';\n\nexport abstract class ActionBase implements ActionContract {\n  // required\n  key!: string;\n  label!: string;\n  icon!: string;\n\n  // optional\n  active = true;\n  show = true;\n  children = [];\n  lg?: boolean;\n  desc?: string;\n  tooltip?: string;\n  triggers?: string[];\n  position?: [number, number];\n  enabled?: (view: EditorView, state: EditorState) => boolean;\n  action?: (view: EditorView, state: EditorState) => void;\n}\n","import { EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { ActionBase } from '../action.base';\nimport { ActionContract } from '../action.contract';\n\nexport class ClearAction extends ActionBase implements ActionContract {\n  override key = 'clear';\n  override label = 'clear';\n  override icon = 'fa-solid fa-trash';\n\n  override tooltip = 'Empty the content of the editor';\n  override triggers = ['ctrl+k'];\n  override enabled = (view: EditorView, state: EditorState) => {\n    return !!state?.doc.length;\n  };\n  override action = (view: EditorView, state: EditorState) => {\n    view?.dispatch({\n      changes: {\n        from: 0,\n        to: view.state.doc.length ?? 0,\n        insert: '',\n      },\n    });\n  };\n}\n","import { Compartment, EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { ActionBase } from '../action.base';\nimport { ActionContract } from '../action.contract';\n\nexport class wrapAction extends ActionBase implements ActionContract {\n  override key = 'wrap';\n  override label = 'wrap';\n  override icon = 'fa-solid fa-file';\n\n  override tooltip = 'Empty the content of the editor';\n  override triggers = ['ctrl+w'];\n  override enabled = (view: EditorView, state: EditorState) => {\n    const wrapCompartment = new Compartment();\n    const extension = EditorView.lineWrapping;\n    return wrapCompartment.get(state) == extension;\n  };\n  override action = (view: EditorView, state: EditorState) => {\n    const wrapCompartment = new Compartment();\n    const extension = EditorView.lineWrapping;\n    const on = wrapCompartment.get(state) == extension;\n    view.dispatch({\n      effects: wrapCompartment.reconfigure(on ? [] : extension),\n    });\n  };\n}\n","import { ClearAction } from './clear.action';\nimport { wrapAction } from './wrap.action';\n\nexport const Actions = [new ClearAction(), new wrapAction()];\n","import { Component, Input } from '@angular/core';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { BaseDirective } from '@thescaffold/ngx-core';\nimport { NgxCodeEditorConfig } from '../utils';\nimport { ActionContract } from './action.contract';\nimport { Actions } from './actions';\n\n@Component({\n  standalone: false,\n  selector: 'x-code-action',\n  template: `\n    @if (editorView && editorState) {\n      <div\n        class=\"x-code-editor-action-container\"\n        >\n        <!-- // loop thru all action\n        // create the directives as components\n        // place them in groups based on their position coords\n        // those without position are place at the end\n        // position is not sequential, but defined a form of precedence\n        // push/set actionComponents so the view can render the menu\n        // the view does a recursive (or near recursive) loop to render the menu -->\n        @for (action of allowedActions; track action) {\n          <div class=\"\">\n            <button\n              class=\"icon-link\"\n              [attr.title]=\"action.tooltip\"\n              (click)=\"action?.action(editorView, editorState)\"\n              >\n              <i [ngClass]=\"action.icon\"></i>\n              @if (action.label) {\n                <span>{{ action.label }}</span>\n              }\n            </button>\n          </div>\n        }\n      </div>\n    }\n    `,\n  styles: [],\n})\nexport class ActionComponent extends BaseDirective {\n  @Input('data') data!: NgxCodeEditorConfig;\n  @Input('view') editorView?: EditorView;\n  @Input('state') editorState?: EditorState;\n\n  actions: ActionContract[] = Actions;\n\n  get allowedActions(): ActionContract[] {\n    return this.actions.filter((a) => this.data.actions.includes(a.key));\n  }\n}\n","import {\n  autocompletion,\n  closeBrackets,\n  closeBracketsKeymap,\n  completionKeymap,\n} from '@codemirror/autocomplete';\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands';\nimport {\n  bracketMatching,\n  defaultHighlightStyle,\n  foldGutter,\n  foldKeymap,\n  indentOnInput,\n  syntaxHighlighting,\n} from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport {\n  highlightSelectionMatches,\n  search,\n  searchKeymap,\n} from '@codemirror/search';\nimport { EditorState } from '@codemirror/state';\nimport {\n  crosshairCursor,\n  drawSelection,\n  dropCursor,\n  EditorView,\n  highlightActiveLine,\n  highlightActiveLineGutter,\n  highlightSpecialChars,\n  keymap,\n  lineNumbers,\n  rectangularSelection,\n} from '@codemirror/view';\n\nexport const extensions = [\n  lineNumbers(),\n  highlightActiveLineGutter(),\n  highlightSpecialChars(),\n  history(),\n  foldGutter(),\n  drawSelection(),\n  dropCursor(),\n  EditorState.allowMultipleSelections.of(true),\n  indentOnInput(),\n  syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n  bracketMatching(),\n  closeBrackets(),\n  autocompletion(),\n  rectangularSelection(),\n  crosshairCursor(),\n  highlightActiveLine(),\n  highlightSelectionMatches(),\n  keymap.of([\n    ...closeBracketsKeymap,\n    ...defaultKeymap,\n    ...searchKeymap,\n    ...historyKeymap,\n    ...foldKeymap,\n    ...completionKeymap,\n    ...lintKeymap,\n  ]),\n  search({\n    top: true,\n    caseSensitive: false,\n    literal: true,\n    wholeWord: false,\n    regexp: true,\n  }),\n  EditorView.lineWrapping,\n];\n","export enum NgxCodeEditorMode {\n  Javascript = 'javascript',\n  HTTP = 'http',\n  Shell = 'shell',\n}\n\nexport enum NgxCodeEditorTheme {\n  Amy = 'amy',\n  AyuLight = 'ayu-light',\n  Barf = 'barf',\n  Bespin = 'bespin',\n  BirdsOfParadise = 'birds-of-paradise',\n  BoysAndGirls = 'boys-and-girls',\n  CLouds = 'clouds',\n  Cobalt = 'cobalt',\n  CoolGlow = 'cool-glow',\n  Dracula = 'dracula',\n  Expresso = 'espresso',\n  NoctisLilac = 'noctis-lilac',\n  RosePineDawn = 'rose-pine-dawn',\n  Smoothy = 'smoothy',\n  SolarizedLight = 'solarized-light',\n  Tommorrow = 'tomorrow',\n}\n\nexport interface NgxCodeEditorConfig {\n  mode: NgxCodeEditorMode;\n  theme: NgxCodeEditorTheme;\n  fromString?: string;\n  fromJSON?: any;\n  actions: string[];\n  hideStatusBar?: boolean;\n  hideActionBar?: boolean;\n}\n","import { InjectionToken } from '@angular/core';\nimport { EditorView } from '@codemirror/view';\nimport { NgxCodeEditorConfig } from '.';\n\nexport const X_NGX_CODE_EDITOR_CONFIG = new InjectionToken<NgxCodeEditorConfig>(\n  'x.code-editor.config',\n);\n\nexport interface CodeEditorWindow extends Window {\n  view: EditorView;\n}\n\nexport enum CodeEditorEventTypes {\n  BeforeStateChange = 'beforeStateChange',\n  AfterStateChange = 'afterStateChange',\n  RegisterHandlers = 'registerHandlers',\n  RegisterTriggers = 'registerTriggers',\n}\n\nexport enum CodeHandlerTypes {\n  KeyDown = 'onKeyDown',\n  KeyPress = 'onKeyPress',\n  TextInput = 'onTextInput',\n  Click = 'onClick',\n  DoubleClick = 'onDoubleClick',\n  TripleClick = 'onTripleClick',\n  ClickOn = 'onClickOn',\n  DoubleClickOn = 'onDoubleClickOn',\n  TripleClickOn = 'onTripleClickOn',\n  Paste = 'onPaste',\n  Drop = 'onDrop',\n}\n\nexport interface CodeEditorEvent {\n  type: CodeEditorEventTypes;\n  payload: any;\n}\n","import { StreamLanguage } from '@codemirror/language';\nimport { http } from '@codemirror/legacy-modes/mode/http';\nimport { javascript } from '@codemirror/legacy-modes/mode/javascript';\nimport { shell } from '@codemirror/legacy-modes/mode/shell';\nimport { NgxCodeEditorMode } from '../utils';\n\nexport const javascriptLanguageMode = StreamLanguage.define(javascript);\nexport const httpLanguageMode = StreamLanguage.define(http);\nexport const shellLanguageMode = StreamLanguage.define(shell);\n\nexport const modes = {\n  [NgxCodeEditorMode.Javascript]: javascriptLanguageMode,\n  [NgxCodeEditorMode.HTTP]: httpLanguageMode,\n  [NgxCodeEditorMode.Shell]: shellLanguageMode,\n};\n","import {\n  amy,\n  ayuLight,\n  barf,\n  bespin,\n  birdsOfParadise,\n  boysAndGirls,\n  clouds,\n  cobalt,\n  coolGlow,\n  dracula,\n  espresso,\n  noctisLilac,\n  rosePineDawn,\n  smoothy,\n  solarizedLight,\n  tomorrow,\n} from 'thememirror';\nimport { NgxCodeEditorTheme } from '../utils';\n\nexport const themes = {\n  [NgxCodeEditorTheme.Amy]: amy,\n  [NgxCodeEditorTheme.AyuLight]: ayuLight,\n  [NgxCodeEditorTheme.Barf]: barf,\n  [NgxCodeEditorTheme.Bespin]: bespin,\n  [NgxCodeEditorTheme.BirdsOfParadise]: birdsOfParadise,\n  [NgxCodeEditorTheme.BoysAndGirls]: boysAndGirls,\n  [NgxCodeEditorTheme.CLouds]: clouds,\n  [NgxCodeEditorTheme.Cobalt]: cobalt,\n  [NgxCodeEditorTheme.CoolGlow]: coolGlow,\n  [NgxCodeEditorTheme.Dracula]: dracula,\n  [NgxCodeEditorTheme.Expresso]: espresso,\n  [NgxCodeEditorTheme.NoctisLilac]: noctisLilac,\n  [NgxCodeEditorTheme.RosePineDawn]: rosePineDawn,\n  [NgxCodeEditorTheme.Smoothy]: smoothy,\n  [NgxCodeEditorTheme.SolarizedLight]: solarizedLight,\n  [NgxCodeEditorTheme.Tommorrow]: tomorrow,\n};\n","import { Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { BaseDirective } from '@thescaffold/ngx-core';\nimport { extensions } from '../extension';\nimport { modes } from '../extension/modes';\nimport { themes } from '../extension/themes';\nimport { NgxCodeEditorConfig } from '../utils';\nimport { X_NGX_CODE_EDITOR_CONFIG } from '../utils/editor';\n\n@Component({\n  standalone: false,\n  selector: 'x-code-editor',\n  template: ` <div #xEditor class=\"x-code-editor-container\"></div> `,\n  styles: [],\n})\nexport class EditorComponent extends BaseDirective {\n  @Input('data') data!: NgxCodeEditorConfig;\n\n  @ViewChild('xEditor', { read: ElementRef }) editor?: ElementRef;\n\n  editorView?: EditorView;\n  editorState?: EditorState;\n\n  constructor(\n    @Inject(X_NGX_CODE_EDITOR_CONFIG)\n    private readonly config: NgxCodeEditorConfig,\n  ) {\n    super();\n  }\n\n  override afterView = () => {\n    if (!this.editor?.nativeElement) {\n      console.error('xEditor element not found');\n      return;\n    }\n\n    const newExtensions = [\n      ...extensions,\n      modes[this.data.mode],\n      themes[this.data.theme],\n    ];\n\n    this.editorState = this.data?.fromJSON\n      ? EditorState.fromJSON(this.data.fromJSON, {\n          doc: this.data?.fromString ?? '',\n          extensions: newExtensions,\n        })\n      : EditorState.create({\n          doc: this.data?.fromString ?? '',\n          extensions: newExtensions,\n        });\n\n    this.editorView = new EditorView({\n      parent: this.editor?.nativeElement,\n      state: this.editorState,\n    });\n  };\n\n  override destroy = () => {\n    this.editorView?.destroy();\n  };\n}\n","import { Component, Input } from '@angular/core';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { BaseDirective } from '@thescaffold/ngx-core';\nimport { NgxCodeEditorConfig } from '../utils';\n\n@Component({\n  standalone: false,\n  selector: 'x-code-status',\n  template: `\n    <div class=\"x-code-status-container text-bg-secondary\">\n      <span class=\"mx-1\">{{ mode }}</span>\n      <span class=\"mx-1\">{{ theme }}</span>\n      <span class=\"mx-1\">Tab {{ tab }}</span>\n      <span class=\"mx-1\">Ls {{ lines }}</span>\n      <span class=\"mx-1\">Ln {{ line }}</span>\n      <span class=\"mx-1\">Col {{ col }}</span>\n    </div>\n  `,\n  styles: [],\n})\nexport class StatusComponent extends BaseDirective {\n  @Input('data') data!: NgxCodeEditorConfig;\n  @Input('view') editorView?: EditorView;\n  @Input('state') editorState?: EditorState;\n\n  get mode(): string {\n    return this.data.mode;\n  }\n\n  get theme(): string {\n    return this.data.theme;\n  }\n\n  get tab(): string {\n    return '' + (this.editorState?.tabSize ?? '...');\n  }\n\n  get lines(): number {\n    return this.editorState?.doc.lines ?? 0;\n  }\n\n  get line(): number {\n    return (\n      this.editorState?.doc.lineAt(this.editorState?.selection.main.head)\n        .number ?? 0\n    );\n  }\n\n  get col(): number {\n    return (\n      this.editorState?.doc.lineAt(this.editorState?.selection.main.head)\n        .from ?? 0\n    );\n  }\n}\n","import { Component, Inject, Input, Optional, ViewChild } from '@angular/core';\nimport { BaseDirective } from '@thescaffold/ngx-core';\nimport { EditorComponent } from './editor';\nimport { NgxCodeEditorConfig, X_NGX_CODE_EDITOR_CONFIG } from './utils';\n\n@Component({\n  standalone: false,\n  selector: 'x-code-editor',\n  template: `\n    <div class=\"x-code-editor\">\n      @if (data.hideActionBar != true) {\n        <x-code-action\n          [data]=\"data\"\n          [view]=\"editor.editorView\"\n          [state]=\"editor.editorState\"\n        ></x-code-action>\n      }\n      <x-code-editor [data]=\"data\" #editor></x-code-editor>\n      @if (data.hideStatusBar != true) {\n        <x-code-status\n          [data]=\"data\"\n          [view]=\"editor.editorView\"\n          [state]=\"editor.editorState\"\n        ></x-code-status>\n      }\n    </div>\n    `,\n  styles: [],\n})\nexport class NgxCodeEditorComponent extends BaseDirective {\n  @Input('data') data!: NgxCodeEditorConfig;\n\n  @ViewChild('editor', {\n    read: EditorComponent,\n    static: true,\n  })\n  editor!: EditorComponent;\n\n  constructor(\n    @Inject(X_NGX_CODE_EDITOR_CONFIG)\n    @Optional()\n    private readonly config: NgxCodeEditorConfig,\n  ) {\n    super();\n    if (!this.data && config) {\n      this.data = config;\n    }\n  }\n\n  prepend(text: string) {\n    this.editor.editorView?.dispatch({\n      changes: {\n        from: 0,\n        insert: `${text}\\n`,\n      },\n      scrollIntoView: true,\n    });\n  }\n\n  insert(text: string) {\n    this.editor.editorView?.dispatch({\n      changes: {\n        from: this.editor.editorState?.doc.length ?? 0,\n        insert: `${text}\\n`,\n      },\n      scrollIntoView: true,\n    });\n  }\n\n  append(text: string) {\n    this.editor.editorView?.dispatch({\n      changes: {\n        from: this.editor.editorState?.doc.toString().length ?? 0,\n        insert: `${text}\\n`,\n      },\n      scrollIntoView: true,\n    });\n  }\n\n  clear() {\n    this.editor.editorView?.dispatch({\n      changes: {\n        from: 0,\n        to: this.editor.editorState?.doc.length ?? 0,\n        insert: '',\n      },\n      scrollIntoView: true,\n    });\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SharedModule } from '@thescaffold/ngx-core';\nimport { ActionComponent } from './action/action.component';\nimport { NgxCodeEditorComponent } from './code-editor.component';\nimport { EditorComponent } from './editor/editor.component';\nimport { StatusComponent } from './status/status.component';\nimport { NgxCodeEditorConfig, X_NGX_CODE_EDITOR_CONFIG } from './utils';\n\n@NgModule({\n  declarations: [\n    ActionComponent,\n    EditorComponent,\n    StatusComponent,\n    NgxCodeEditorComponent,\n  ],\n  imports: [SharedModule],\n  exports: [NgxCodeEditorComponent],\n})\nexport class NgxCodeEditorModule {\n  static register(\n    config?: NgxCodeEditorConfig,\n  ): ModuleWithProviders<NgxCodeEditorModule> {\n    return {\n      ngModule: NgxCodeEditorModule,\n      providers: [{ provide: X_NGX_CODE_EDITOR_CONFIG, useValue: config }],\n    };\n  }\n}\n","/*\n * Public API Surface of code-editor\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ActionComponent","i2.EditorComponent","i3.StatusComponent"],"mappings":"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"}