{"__symbolic":"module","version":4,"metadata":{"USER_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":32},"arguments":["USER_OPTIONS"]},"EditorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"BlockComponent"},{"__symbolic":"reference","name":"SanitizePipe"},{"__symbolic":"reference","name":"ɵb"}],"exports":[{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"BlockComponent"},{"__symbolic":"reference","name":"SanitizePipe"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":30,"character":4},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":33,"character":4},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"PortalModule"},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":36,"character":4}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"EditorModule"},"providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"provideEditor"},"arguments":[{"__symbolic":"reference","name":"options"}]}]}},"forChild":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"EditorModule"},"providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"provideEditor"},"arguments":[{"__symbolic":"reference","name":"options"}]}]}}}},"provideEditor":{"__symbolic":"function","parameters":["options"],"value":[{"provide":{"__symbolic":"reference","name":"USER_OPTIONS"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":{"__symbolic":"reference","name":"EDITOR_OPTIONS"},"useFactory":{"__symbolic":"reference","name":"editorOptionsFactory"},"deps":[{"__symbolic":"reference","name":"USER_OPTIONS"}]}]},"editorOptionsFactory":{"__symbolic":"function","parameters":["options"],"value":{}},"EditorComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"editor","template":"\n    <div\n      cdkDropList\n      [cdkDropListDisabled]=\"disabled\"\n      (cdkDropListDropped)=\"drop($event)\"\n    >\n      <block\n        [readonly]=\"disabled\"\n        selectable\n        cdkDrag\n        cdkDragLockAxis=\"y\"\n        *ngFor=\"let block of _data?.blocks; let i = index; trackBy: trackBy()\"\n        [block]=\"block\"\n      >\n        <div\n          *ngIf=\"!disabled\"\n          class=\"controls flex space-x-1 items-center justify-center\"\n        >\n          <button\n            (click)=\"blockMenu.open($event)\"\n            class=\"bg-white rounded-sm h-5 w-5 flex justify-center items-center\"\n          >\n            <mat-icon\n              class=\"cursor-move text-xl select-none h-5 w-5\"\n              cdkDragHandle\n              >drag_indicator</mat-icon\n            >\n          </button>\n        </div>\n      </block>\n    </div>\n    <lib-menu #blockMenu>\n      <div class=\"flex h-56 bg-gray-100 shadow-md rounded-md\"></div>\n    </lib-menu>\n\n    <selectbox></selectbox>\n  ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":79,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":82,"character":15},"useExisting":{"__symbolic":"reference","name":"EditorComponent"},"multi":true}],"styles":["::ng-deep block{min-height:1.25rem}::ng-deep block .controls{@apply absolute opacity-0 transition-opacity duration-100 ease-linear -left-6}::ng-deep block.cdk-drag-preview .controls,::ng-deep block:hover:not(.selected) .controls{@apply opacity-100}::ng-deep block.selected:first-of-type{@apply rounded-t-md}::ng-deep block.selected:last-of-type{@apply rounded-b-md}::ng-deep block.selected{@apply bg-gray-200}::ng-deep body .mat-menu-content:not(:empty){@apply py-0}::ng-deep .command{transition:background-color .1s ease}::ng-deep .command.selected{@apply bg-gray-300}::ng-deep .cdk-drag-preview{@apply bg-white rounded-md z-10 shadow-md}::ng-deep .cdk-drag-placeholder{@apply opacity-0}::ng-deep .cdk-drag-animating,::ng-deep .cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}"]}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":95,"character":3},"arguments":["class"]}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3},"arguments":["readonly"]}]}],"_data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3},"arguments":["data"]}]}],"_save":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3},"arguments":["save"]}]}],"selectables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":115,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"}]}]}],"blocks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":117,"character":3},"arguments":[{"__symbolic":"reference","name":"BlockComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":129,"character":5},"arguments":[{"__symbolic":"reference","name":"EDITOR_OPTIONS"}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":128,"character":27,"context":{"typeName":"HTMLElement"},"module":"./editor.component"}]},{"__symbolic":"reference","name":"EditorOptions"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":130,"character":20}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"callOnChange":[{"__symbolic":"method"}],"callOnTouched":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"trackBy":[{"__symbolic":"method"}],"insertBase":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"convert":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"append":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"deleteMany":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"getBlocks":[{"__symbolic":"method"}],"scrollTo":[{"__symbolic":"method"}]}},"BlockComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"block","template":"\n    <ng-content></ng-content>\n    <ng-container\n      #container\n      appViewContainer\n      #appViewContainer=\"appViewContainer\"\n    ></ng-container>\n  ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"}}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":40,"character":3},"arguments":["class"]}]}],"block":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3},"arguments":["readonly"]}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":70,"character":3},"arguments":["container",{"static":true}]}]}],"appViewContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":72,"character":3},"arguments":["appViewContainer",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":77,"character":5},"arguments":[{"__symbolic":"reference","name":"EDITOR_OPTIONS"}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":76,"character":17},{"__symbolic":"reference","name":"EditorOptions"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":79,"character":20},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":80,"character":26,"context":{"typeName":"HTMLElement"},"module":"./block.component"}]},{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":81,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":82,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadPluginComponent":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TextComponentModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TextComponent"}],"exports":[{"__symbolic":"reference","name":"TextComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":4},{"__symbolic":"reference","name":"EditorModule"},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":16,"character":4},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"InlineToolbarModule"}]}]}],"members":{}},"TextComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"text","template":"\n    <div\n      [attr.placeholder]=\"\n        (focused$ | async) && commandsEnabled ? 'Type / to see commands' : ''\n      \"\n      (keydown.ArrowUp)=\"arrowUp($event)\"\n      (keydown.ArrowDown)=\"arrowDown($event)\"\n      (keydown.enter)=\"enter($event)\"\n      (keydown.backspace)=\"backspace($event)\"\n      #editable\n      appContentEditable\n      [ngModel]=\"data\"\n      (ngModelChange)=\"data = $event; save($event)\"\n      [style.minHeight]=\"'1rem'\"\n      class=\"focus:outline-none bg-background text-color w-full resize-none overflow-hidden\"\n      *ngIf=\"!disabled\"\n    ></div>\n    <div\n      #editable\n      *ngIf=\"disabled\"\n      [innerHTML]=\"data | sanitize\"\n      class=\"focus:outline-none bg-background text-color w-full resize-none overflow-hidden\"\n    ></div>\n  ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":62,"character":19},"member":"OnPush"},"styles":["[contenteditable=true]:empty:before{content:attr(placeholder);display:block;opacity:.64;pointer-events:none}[contenteditable]{-webkit-user-select:text;user-select:text}"]}]}],"members":{"commandsEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3},"arguments":["readonly"]}]}],"editable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":89,"character":3},"arguments":["editable"]}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"_save":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":109,"character":3},"arguments":["save"]}]}],"prepend":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":110,"character":3}}]}],"append":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":111,"character":3}}]}],"delete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":112,"character":3}}]}],"up":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":113,"character":3}}]}],"down":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3}}]}],"convert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":115,"character":3}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3}}]}],"box":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3}}]}],"_commands":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":118,"character":3},"arguments":["commands"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":120,"character":23},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":121,"character":27,"context":{"typeName":"HTMLElement"},"module":"./components/text/text.component"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":122,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"clearFormat":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"backspace":[{"__symbolic":"method"}],"arrowUp":[{"__symbolic":"method"}],"arrowDown":[{"__symbolic":"method"}]}},"PortalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"app-portal","template":"\n    <ng-container *cdkPortal>\n      <ng-content></ng-content>\n    </ng-container>\n  ","styles":[]}]}],"members":{"selector":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"portal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"CdkPortal","line":24,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":28,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":29,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationRef","line":30,"character":20}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"PortalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PortalComponent"}],"exports":[{"__symbolic":"reference","name":"PortalComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":8,"character":26}]}]}],"members":{}},"InlineToolbarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"InlineToolbarComponent"}],"exports":[{"__symbolic":"reference","name":"InlineToolbarComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","name":"PortalModule"},{"__symbolic":"reference","name":"EditorModule"},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":19,"character":4},{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{}},"InlineToolbarComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"lib-inline-toolbar","template":"\n    <app-portal selector=\"body\">\n      <div\n        (pointerup)=\"$event.stopPropagation()\"\n        *ngIf=\"block.rect$ | async as box\"\n        #inlineToolbar\n        [style.top.px]=\"box.y - 48\"\n        [style.left.px]=\"box.left\"\n        [style.height.px]=\"48\"\n        [style.maxWidth.px]=\"box.width\"\n        [id]=\"'id_toolbar_' + block.block.id\"\n        class=\"absolute select-none flex px-2 flex-row space-x-1 items-center bg-gray-200 shadow-md\"\n      >\n        <ng-content></ng-content>\n        <mat-icon\n          toolbarAction\n          *ngFor=\"let command of util.commands\"\n          (click)=\"util.exec(command.name)\"\n          class=\"rounded-md\"\n          [ngClass]=\"{ 'bg-gray-400': util.is(command.name) }\"\n          >{{ command.icon }}</mat-icon\n        >\n        <mat-icon\n          [style.backgroundColor]=\"util.value('foreColor')\"\n          toolbarAction\n          [matMenuTriggerFor]=\"menu\"\n          class=\"rounded-md\"\n          >colorize</mat-icon\n        >\n        <mat-menu [hasBackdrop]=\"false\" #menu=\"matMenu\">\n          <button\n            (click)=\"util.exec('foreColor', color)\"\n            [style.backgroundColor]=\"color\"\n            toolbarAction\n            *ngFor=\"let color of util.colors\"\n            mat-menu-item\n          ></button>\n        </mat-menu>\n        <mat-icon\n          [style.backgroundColor]=\"util.value('backColor')\"\n          toolbarAction\n          [matMenuTriggerFor]=\"backColor\"\n          class=\"rounded-md\"\n          >format_paint</mat-icon\n        >\n        <mat-menu [hasBackdrop]=\"false\" #backColor=\"matMenu\">\n          <button\n            (click)=\"util.exec('backColor', color)\"\n            [style.backgroundColor]=\"color\"\n            toolbarAction\n            *ngFor=\"let color of util.colors\"\n            mat-menu-item\n          ></button>\n        </mat-menu>\n        <mat-icon (click)=\"util.wrap('code')\" toolbarAction class=\"rounded-md\"\n          >code</mat-icon\n        >\n\n        <mat-icon\n          #link=\"toolbarAction\"\n          [ngClass]=\"{ 'bg-gray-400': link.toggled }\"\n          toolbarAction\n          class=\"rounded-md\"\n          >link</mat-icon\n        >\n        <mat-icon toolbarAction class=\"rounded-md\">format_clear</mat-icon>\n      </div>\n    </app-portal>\n  ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BlockComponent"},{"__symbolic":"reference","name":"EditorComponent"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"CommandPaletteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CommandPaletteComponent"}],"exports":[{"__symbolic":"reference","name":"CommandPaletteComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":12},{"__symbolic":"reference","name":"PortalModule"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"EditorModule"}]}]}],"members":{}},"CommandPaletteComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"lib-command-palette","template":"\n    <app-portal selector=\"body\">\n      <div\n        *ngIf=\"block.rect$ | async as box\"\n        commandlist\n        [id]=\"'id_commands_' + block.block.id\"\n        class=\"absolute select-none flex flex-col space-y-1 bg-gray-200 shadow-md rounded-md\"\n        [style.top.px]=\"box.top + box.height\"\n        [style.left.px]=\"box.left\"\n        [style.width.px]=\"box.width\"\n      >\n        <div>\n          <div\n            [plugin]=\"(block.ref$ | async)?.instance\"\n            command\n            [command]=\"command\"\n            *ngFor=\"let command of options.commands\"\n          >\n            {{ command.label }}\n          </div>\n        </div>\n      </div>\n    </app-portal>\n  ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":35,"character":5},"arguments":[{"__symbolic":"reference","name":"EDITOR_OPTIONS"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"EditorOptions"},{"__symbolic":"reference","name":"BlockComponent"},{"__symbolic":"reference","name":"EditorComponent"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"CommandsDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[commandlist]"}]}],"members":{"commandRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":22,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":42,"character":27,"context":{"typeName":"HTMLElement"},"module":"./directives/commands.directive"}]},{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"BlockComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"defaultOptions":{"base":{"data":"","type":"text"},"plugins":[]},"EditorOptions":{"__symbolic":"interface"},"EDITOR_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":14,"character":34},"arguments":["EDITOR"]},"EditorBlock":{"__symbolic":"interface"},"EditorData":{"__symbolic":"interface"},"EditorPlugin":{"__symbolic":"interface"},"EditorCommand":{"__symbolic":"interface"},"PluginConversion":{"__symbolic":"interface"},"PluginComponent":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"BlockComponent"}]}],"focus":[{"__symbolic":"method"}]}},"generateId":{"__symbolic":"error","message":"Lambda not supported","line":3,"character":26,"module":"./utils/util"},"saveSelection":{"__symbolic":"function"},"restoreSelection":{"__symbolic":"function"},"getCaretPosition":{"__symbolic":"function"},"placeCaretAtEnd":{"__symbolic":"function"},"cursorAtEnd":{"__symbolic":"function"},"cursorAtStart":{"__symbolic":"function"},"is":{"__symbolic":"function"},"value":{"__symbolic":"function"},"exec":{"__symbolic":"function"},"wrap":{"__symbolic":"function"},"getOffset":{"__symbolic":"function"},"colors":["white","yellow","orange","red","teal","blue","green","purple","gray","black"],"commands":[{"name":"bold","icon":"format_bold","shortcut":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"ControlLeft"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"KeyB"}]},{"name":"underline","icon":"format_underline","shortcut":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"ControlLeft"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"KeyU"}]},{"name":"italic","icon":"format_italic","shortcut":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"ControlLeft"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"KeyI"}]},{"name":"strikeThrough","icon":"format_strikethrough","shortcut":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"ControlLeft"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"KeyCode"},"member":"KeyS"}]},{"name":"justifyLeft","icon":"format_align_left"},{"name":"justifyCenter","icon":"format_align_center"},{"name":"justifyFull","icon":"format_align_justify"},{"name":"justifyRight","icon":"format_align_right"},{"name":"undo","icon":"undo"},{"name":"redo","icon":"redo"}],"KeyCode":{"KeyA":"KeyA","KeyB":"KeyB","KeyC":"KeyC","KeyD":"KeyD","KeyE":"KeyE","KeyF":"KeyF","KeyG":"KeyG","KeyH":"KeyH","KeyI":"KeyI","KeyJ":"KeyJ","KeyK":"KeyK","KeyL":"KeyL","KeyM":"KeyM","KeyN":"KeyN","KeyO":"KeyO","KeyP":"KeyP","KeyQ":"KeyQ","KeyR":"KeyR","KeyS":"KeyS","KeyT":"KeyT","KeyU":"KeyU","KeyV":"KeyV","KeyW":"KeyW","KeyX":"KeyX","KeyY":"KeyY","KeyZ":"KeyZ","Digit0":"Digit0","Digit1":"Digit1","Digit2":"Digit2","Digit3":"Digit3","Digit4":"Digit4","Digit5":"Digit5","Digit6":"Digit6","Digit7":"Digit7","Digit8":"Digit8","Digit9":"Digit9","F1":"F1","F2":"F2","F3":"F3","F4":"F4","F5":"F5","F6":"F6","F7":"F7","F8":"F8","F9":"F9","F10":"F10","F11":"F11","F12":"F12","F13":"F13","F14":"F14","F15":"F15","F16":"F16","F17":"F17","F18":"F18","F19":"F19","F20":"F20","MetaLeft":"MetaLeft","AltLeft":"AltLeft","ShiftLeft":"ShiftLeft","ControlLeft":"ControlLeft","MetaRight":"MetaRight","AltRight":"AltRight","ShiftRight":"ShiftRight","ControlRight":"ControlRight","ArrowRight":"ArrowRight","ArrowUp":"ArrowUp","ArrowLeft":"ArrowLeft","ArrowDown":"ArrowDown","Function":"Function","Delete":"Delete","Home":"Home","End":"End","PageUp":"PageUp","PageDown":"PageDown","Backquote":"Backquote","CapsLock":"CapsLock","Tab":"Tab","Space":"Space","Backspace":"Backspace","Enter":"Enter","Escape":"Escape","Backslash":"Backslash","Comma":"Comma","Equal":"Equal","BracketLeft":"BracketLeft","Minus":"Minus","Period":"Period","Quote":"Quote","BracketRight":"BracketRight","Semicolon":"Semicolon","Slash":"Slash","Numpad0":"Numpad0","Numpad1":"Numpad1","Numpad2":"Numpad2","Numpad3":"Numpad3","Numpad4":"Numpad4","Numpad5":"Numpad5","Numpad6":"Numpad6","Numpad7":"Numpad7","Numpad8":"Numpad8","Numpad9":"Numpad9","NumLock":"NumLock","NumpadEqual":"NumpadEqual","NumpadDivide":"NumpadDivide","NumpadMultiply":"NumpadMultiply","NumpadSubtract":"NumpadSubtract","NumpadAdd":"NumpadAdd","NumpadEnter":"NumpadEnter","NumpadDecimal":"NumpadDecimal"},"shortcut":{"__symbolic":"error","message":"Lambda not supported","line":4,"character":24,"module":"./utils/shortcuts"},"sequence":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":27,"character":9,"module":"./utils/shortcuts"}},"SanitizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sanitize"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":7,"character":27}]}],"transform":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1},"arguments":[{"selector":"[selectable]","exportAs":"selectable"}]}],"members":{"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":3},"arguments":["class.selected"]}]}],"contextmenu":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":13,"character":3},"arguments":["contextmenu",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":22,"character":26,"context":{"typeName":"HTMLElement"},"module":"./directives/selectable.directive"}]},{"__symbolic":"reference","name":"BlockComponent"}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":30,"character":1},"arguments":[{"selector":"selectbox","template":"\n    <app-portal selector=\"body\">\n      <div\n        class=\"absolute bg-yellow-400 opacity-50\"\n        [style.left.px]=\"(selectionbox$ | async)?.x\"\n        [style.top.px]=\"(selectionbox$ | async)?.y\"\n        [style.height.px]=\"(selectionbox$ | async)?.height\"\n        [style.width.px]=\"(selectionbox$ | async)?.width\"\n      ></div>\n    </app-portal>\n  "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":51,"character":27,"context":{"typeName":"HTMLElement"},"module":"./selectbox.component"}]},{"__symbolic":"reference","name":"EditorComponent"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"overlap":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵd"}],"exports":[{"__symbolic":"reference","name":"ɵd"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","name":"PortalModule"}]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"lib-menu","template":"\n    <app-portal *ngIf=\"rect$ | async as box\">\n      <div\n        #menu\n        class=\"absolute\"\n        [style.top.px]=\"box.top\"\n        [style.left.px]=\"box.left\"\n        [style.width.px]=\"width\"\n      >\n        <ng-content></ng-content>\n      </div>\n    </app-portal>\n  ","styles":[],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":19},"member":"OnPush"}}]}],"members":{"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"horizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"overlayTrigger":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"el":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":["menu"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":39,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"calcPosition":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12}],"exports":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵa"}],"declarations":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵa"}],"providers":[]}]}],"members":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[appViewContainer]","exportAs":"appViewContainer"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":8,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":9,"character":15}]}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":12}],"exports":[{"__symbolic":"reference","name":"CommandsDirective"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"}],"declarations":[{"__symbolic":"reference","name":"CommandsDirective"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"}],"providers":[]}]}],"members":{}},"ɵh":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[command]"}]}],"members":{"plugin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"command":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"click":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":20,"character":3},"arguments":["click"]}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":36,"character":3},"arguments":["class.selected"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":39,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":41,"character":27,"context":{"typeName":"HTMLElement"},"module":"./directives/command.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":42,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[appContentEditable]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":16,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵi"},"multi":true}]}]}],"members":{"propValueAccessor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"contenteditable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":3},"arguments":["attr.contentEditable"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":40}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":30,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":30,"character":64}]}],"callOnChange":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":32,"character":3},"arguments":["input"]}]}],"callOnTouched":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["blur"]}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"listenerDisabledState":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[toolbarAction]","exportAs":"toolbarAction"}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":11,"character":3},"arguments":["class"]}]}],"pointerup":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":12,"character":3},"arguments":["mousedown",["$event"]]}]}],"toggled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"toggled$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3},"arguments":["toggled"]}]}],"__ctor__":[{"__symbolic":"constructor"}]}}},"origins":{"USER_OPTIONS":"./editor.module","EditorModule":"./editor.module","provideEditor":"./editor.module","editorOptionsFactory":"./editor.module","EditorComponent":"./editor.component","BlockComponent":"./block.component","TextComponentModule":"./components/text/text.module","TextComponent":"./components/text/text.component","PortalComponent":"./components/portal/portal.component","PortalModule":"./components/portal/portal.module","InlineToolbarModule":"./components/inline-toolbar/inline-toolbar.module","InlineToolbarComponent":"./components/inline-toolbar/inline-toolbar.component","CommandPaletteModule":"./components/command-palette/command-palette.module","CommandPaletteComponent":"./components/command-palette/command-palette.component","CommandsDirective":"./directives/commands.directive","defaultOptions":"./editor.options","EditorOptions":"./editor.options","EDITOR_OPTIONS":"./editor.options","EditorBlock":"./editor.types","EditorData":"./editor.types","EditorPlugin":"./editor.types","EditorCommand":"./editor.types","PluginConversion":"./editor.types","PluginComponent":"./plugin","generateId":"./utils/util","saveSelection":"./utils/util","restoreSelection":"./utils/util","getCaretPosition":"./utils/util","placeCaretAtEnd":"./utils/util","cursorAtEnd":"./utils/util","cursorAtStart":"./utils/util","is":"./utils/util","value":"./utils/util","exec":"./utils/util","wrap":"./utils/util","getOffset":"./utils/util","colors":"./utils/util","commands":"./utils/util","KeyCode":"./utils/keycodes","shortcut":"./utils/shortcuts","sequence":"./utils/shortcuts","SanitizePipe":"./pipes/sanitize","ɵa":"./directives/selectable.directive","ɵb":"./selectbox.component","ɵc":"./components/menu/menu.module","ɵd":"./components/menu/menu.component","ɵe":"./directives/editor-directives.module","ɵf":"./directives/view-container.directive","ɵg":"./directives/directives.module","ɵh":"./directives/command.directive","ɵi":"./directives/contenteditable.directive","ɵj":"./directives/toolbar-action.directive"},"importAs":"@formula-app/editor"}