UNPKG

10.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-editor.umd.js","sources":["ng://primeng/editor/editor.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,AfterViewInit,Input,Output,EventEmitter,ContentChild,forwardRef,ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SharedModule,Header} from 'primeng/api'\nimport {DomHandler} from 'primeng/dom';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport * as Quill from \"quill\";\n\nexport const EDITOR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Editor),\n multi: true\n};\n\n@Component({\n selector: 'p-editor',\n template: `\n <div [ngClass]=\"'ui-widget ui-editor-container ui-corner-all'\" [class]=\"styleClass\">\n <div class=\"ui-editor-toolbar ui-widget-header ui-corner-top\" *ngIf=\"toolbar\">\n <ng-content select=\"p-header\"></ng-content>\n </div>\n <div class=\"ui-editor-toolbar ui-widget-header ui-corner-top\" *ngIf=\"!toolbar\">\n <span class=\"ql-formats\">\n <select class=\"ql-header\">\n <option value=\"1\">Heading</option>\n <option value=\"2\">Subheading</option>\n <option selected>Normal</option>\n </select>\n <select class=\"ql-font\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-bold\" aria-label=\"Bold\"></button>\n <button class=\"ql-italic\" aria-label=\"Italic\"></button>\n <button class=\"ql-underline\" aria-label=\"Underline\"></button>\n </span>\n <span class=\"ql-formats\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-list\" value=\"ordered\" aria-label=\"Ordered List\"></button>\n <button class=\"ql-list\" value=\"bullet\" aria-label=\"Unordered List\"></button>\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-link\" aria-label=\"Insert Link\"></button>\n <button class=\"ql-image\" aria-label=\"Insert Image\"></button>\n <button class=\"ql-code-block\" aria-label=\"Insert Code Block\"></button>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-clean\" aria-label=\"Remove Styles\"></button>\n </span>\n </div>\n <div class=\"ui-editor-content\" [ngStyle]=\"style\"></div>\n </div>\n `,\n providers: [EDITOR_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class Editor implements AfterViewInit,ControlValueAccessor {\n \n @Output() onTextChange: EventEmitter<any> = new EventEmitter();\n \n @Output() onSelectionChange: EventEmitter<any> = new EventEmitter();\n \n @ContentChild(Header) toolbar;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n \n @Input() placeholder: string;\n \n @Input() formats: string[];\n\n @Input() modules: any;\n\n @Input() bounds: any;\n\n @Input() scrollingContainer: any;\n\n @Input() debug: string;\n \n @Output() onInit: EventEmitter<any> = new EventEmitter();\n \n value: string;\n \n _readonly: boolean;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n quill: any;\n \n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n let editorElement = DomHandler.findSingle(this.el.nativeElement ,'div.ui-editor-content'); \n let toolbarElement = DomHandler.findSingle(this.el.nativeElement ,'div.ui-editor-toolbar'); \n let defaultModule = {toolbar: toolbarElement};\n let modules = this.modules ? {...defaultModule, ...this.modules} : defaultModule;\n\n this.quill = new Quill(editorElement, {\n modules: modules,\n placeholder: this.placeholder,\n readOnly: this.readonly,\n theme: 'snow',\n formats: this.formats,\n bounds: this.bounds,\n debug: this.debug,\n scrollingContainer: this.scrollingContainer\n });\n \n if (this.value) {\n this.quill.pasteHTML(this.value);\n }\n \n this.quill.on('text-change', (delta, oldContents, source) => {\n if (source === 'user') {\n let html = editorElement.children[0].innerHTML;\n let text = this.quill.getText().trim();\n if (html === '<p><br></p>') {\n html = null;\n }\n\n this.onTextChange.emit({\n htmlValue: html,\n textValue: text,\n delta: delta,\n source: source\n });\n \n this.onModelChange(html);\n this.onModelTouched();\n }\n });\n \n this.quill.on('selection-change', (range, oldRange, source) => {\n this.onSelectionChange.emit({\n range: range,\n oldRange: oldRange,\n source: source\n });\n });\n \n this.onInit.emit({\n editor: this.quill\n });\n }\n \n writeValue(value: any) : void {\n this.value = value;\n \n if (this.quill) {\n if (value)\n this.quill.pasteHTML(value);\n else\n this.quill.setText('');\n }\n }\n \n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n \n getQuill() {\n return this.quill;\n }\n \n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(val:boolean) {\n this._readonly = val;\n \n if (this.quill) {\n if (this._readonly)\n this.quill.disable();\n else\n this.quill.enable();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Editor,SharedModule],\n declarations: [Editor]\n})\nexport class EditorModule { }\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","EventEmitter","DomHandler","ElementRef","Output","ContentChild","Header","Input","Component","ChangeDetectionStrategy","NgModule","CommonModule","SharedModule"],"mappings":"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"}
\No newline at end of file