@cleavelandprice/ngx-lib 3.1.31 → 3.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2020/quill-editor/cleavelandprice-ngx-lib-quill-editor.mjs +5 -0
  2. package/esm2020/quill-editor/components/editor/editor.component.mjs +211 -0
  3. package/esm2020/quill-editor/model/buttons.mjs +51 -0
  4. package/esm2020/quill-editor/model/config.mjs +31 -0
  5. package/esm2020/quill-editor/model/dialog-data.mjs +2 -0
  6. package/esm2020/quill-editor/model/icons.mjs +9 -0
  7. package/esm2020/quill-editor/model/tooltips.mjs +54 -0
  8. package/esm2020/quill-editor/public_api.mjs +7 -0
  9. package/esm2020/quill-editor/quill-editor.module.mjs +65 -0
  10. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +1 -1
  11. package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs +425 -0
  12. package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs.map +1 -0
  13. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  14. package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs +418 -0
  15. package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs.map +1 -0
  16. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  17. package/package.json +9 -1
  18. package/quill-editor/components/editor/editor.component.d.ts +53 -0
  19. package/quill-editor/index.d.ts +5 -0
  20. package/quill-editor/model/buttons.d.ts +28 -0
  21. package/quill-editor/model/config.d.ts +24 -0
  22. package/quill-editor/model/dialog-data.d.ts +20 -0
  23. package/quill-editor/model/icons.d.ts +6 -0
  24. package/quill-editor/model/tooltips.d.ts +31 -0
  25. package/quill-editor/public_api.d.ts +6 -0
  26. package/quill-editor/quill-editor.module.d.ts +17 -0
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
86
86
  type: ViewChild,
87
87
  args: ['file', { static: true }]
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVFoQyxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW1CLFNBQThDLEVBQVMsYUFBNEI7UUFBbkYsY0FBUyxHQUFULFNBQVMsQ0FBcUM7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVgvRixVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNwQyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO1FBSTNDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRWlGLENBQUM7SUFFM0csUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztJQUNsRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxLQUFLLEdBQTRCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNyRSxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQ3ZDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxNQUFNLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQzdDO29CQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQzVCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsNERBQTREO1FBQzVELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjtRQUVELHlDQUF5QztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0Qiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEQseUNBQXlDO1FBQ3pDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM3QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRDtRQUVELDZCQUE2QjtRQUU3QixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1FBRWhGLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFbkMseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFOUIsaURBQWlEO1FBQ2pELFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQyx3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRXBDLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBRTdCLCtDQUErQztZQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQXJGVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixnS0NWbEMsc3RDQTBCQTsyRkRoQmEscUJBQXFCO2tCQUpqQyxTQUFTOzsrSEFLNkIsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaWxlITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuICBleGlzdGluZ0ZpbGVDb25mbGljdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIFN0YXRlXHJcbiAgcHJvZ3Jlc3M6IGFueTtcclxuICBjYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgcHJpbWFyeUJ1dHRvblRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIHVwbG9hZFN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBsb2FkRGlhbG9nQ29tcG9uZW50PiwgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlcygpIHtcclxuICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzQWRkZWQoKSB7XHJcbiAgICBjb25zdCBmaWxlczogeyBba2V5OiBzdHJpbmddOiBGaWxlIH0gPSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5maWxlcztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpbGVzKSB7XHJcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5KSkpIHtcclxuICAgICAgICAvLyBTZWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHNcclxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXhpc3RzKGZpbGVzW2tleV0ubmFtZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoZXhpc3RzID0+IHtcclxuICAgICAgICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlQ29uZmxpY3QgPSBmaWxlc1trZXldLm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZXNba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIC8vIGlmIGV2ZXJ5dGhpbmcgd2FzIHVwbG9hZGVkIGFscmVhZHksIGp1c3QgY2xvc2UgdGhlIGRpYWxvZ1xyXG4gICAgaWYgKHRoaXMudXBsb2FkU3VjY2Vzc2Z1bCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBcInVwbG9hZGluZ1wiXHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgLy8gc3RhcnQgdGhlIHVwbG9hZCBhbmQgc2F2ZSB0aGUgcHJvZ3Jlc3MgbWFwXHJcbiAgICB0aGlzLnByb2dyZXNzID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZCh0aGlzLmZpbGVzKTtcclxuXHJcbiAgICAvLyBjb252ZXJ0IHRoZSBwcm9ncmVzcyBtYXAgaW50byBhbiBhcnJheVxyXG4gICAgY29uc3QgYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlcyA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLnByb2dyZXNzKSB7XHJcbiAgICAgIGFsbFByb2dyZXNzT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnByb2dyZXNzW2tleV0ucHJvZ3Jlc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkanVzdCB0aGUgc3RhdGUgdmFyaWFibGVzXHJcblxyXG4gICAgLy8gVGhlIE9LLWJ1dHRvbiBzaG91bGQgaGF2ZSB0aGUgdGV4dCBcIkZpbmlzaFwiIG5vd1xyXG4gICAgdGhpcy5wcmltYXJ5QnV0dG9uVGV4dCA9IHRoaXMudXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dDtcclxuXHJcbiAgICAvLyBUaGUgZGlhbG9nIHNob3VsZCBub3QgYmUgY2xvc2VkIHdoaWxlIHVwbG9hZGluZ1xyXG4gICAgdGhpcy5jYW5CZUNsb3NlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBIaWRlIHRoZSBjYW5jZWwtYnV0dG9uXHJcbiAgICB0aGlzLnNob3dDYW5jZWxCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAvLyBXaGVuIGFsbCBwcm9ncmVzcy1vYnNlcnZhYmxlcyBhcmUgY29tcGxldGVkLi4uXHJcbiAgICBmb3JrSm9pbihhbGxQcm9ncmVzc09ic2VydmFibGVzKS5zdWJzY3JpYmUoZW5kID0+IHtcclxuICAgICAgLy8gLi4uIHRoZSBkaWFsb2cgY2FuIGJlIGNsb3NlZCBhZ2Fpbi4uLlxyXG4gICAgICB0aGlzLmNhbkJlQ2xvc2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gZmFsc2U7XHJcblxyXG4gICAgICAvLyAuLi4gdGhlIHVwbG9hZCB3YXMgc3VjY2Vzc2Z1bC4uLlxyXG4gICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3NmdWwgPSB0cnVlO1xyXG5cclxuICAgICAgLy8gLi4uIGFuZCB0aGUgY29tcG9uZW50IGlzIG5vIGxvbmdlciB1cGxvYWRpbmdcclxuICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAoY2hhbmdlKT1cIm9uRmlsZXNBZGRlZCgpXCIgbXVsdGlwbGUgLz5cblxuPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGlkPVwidGl0bGVcIj5cbiAgPGRpdj57eyB1cGxvYWRTZXJ2aWNlLmNvbmZpZy51cGxvYWREaWFsb2dUaXRsZSB9fTwvZGl2PlxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmcgfHwgdXBsb2FkU3VjY2Vzc2Z1bFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkLWZpbGVzLWJ0blwiIChjbGljayk9XCJhZGRGaWxlcygpXCI+XG4gICAge3sgdXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgaWQ9XCJjb25mbGljdFwiICpuZ0lmPVwiZXhpc3RpbmdGaWxlQ29uZmxpY3RcIj5cbiAge3sgZXhpc3RpbmdGaWxlQ29uZmxpY3QgfX0gYWxyZWFkeSBleGlzdHMgb24gdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuXG48L2Rpdj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1saXN0PlxuICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICA8aDQgbWF0LWxpbmU+e3tmaWxlLm5hbWV9fTwvaDQ+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cInByb2dyZXNzXCIgbW9kZT1cImRldGVybWluYXRlXCIgW3ZhbHVlXT1cInByb2dyZXNzW2ZpbGUubmFtZV0ucHJvZ3Jlc3MgfCBhc3luY1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gIDwvbWF0LWxpc3Q+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBpZD1cImFjdGlvbnNcIj5cbiAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+e3sgdXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCB9fTwvYnV0dG9uPlxuICA8YnV0dG9uICpuZ0lmPVwiZmlsZXMuc2l6ZSA+IDBcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWNhbkJlQ2xvc2VkXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj57eyBwcmltYXJ5QnV0dG9uVGV4dCB9fTwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVFoQyxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW1CLFNBQThDLEVBQVMsYUFBNEI7UUFBbkYsY0FBUyxHQUFULFNBQVMsQ0FBcUM7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVgvRixVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNwQyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO1FBSTNDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRWlGLENBQUM7SUFFM0csUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztJQUNsRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxLQUFLLEdBQTRCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNyRSxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQ3ZDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxNQUFNLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQzdDO29CQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQzVCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsNERBQTREO1FBQzVELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjtRQUVELHlDQUF5QztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0Qiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEQseUNBQXlDO1FBQ3pDLE1BQU0sc0JBQXNCLEdBQVUsRUFBRSxDQUFDO1FBRXpDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM3QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRDtRQUVELDZCQUE2QjtRQUU3QixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1FBRWhGLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFbkMseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFOUIsaURBQWlEO1FBQ2pELFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQyx3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRXBDLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBRTdCLCtDQUErQztZQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQXJGVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixnS0NWbEMsc3RDQTBCQTsyRkRoQmEscUJBQXFCO2tCQUpqQyxTQUFTOzsrSEFLNkIsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaWxlITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuICBleGlzdGluZ0ZpbGVDb25mbGljdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIFN0YXRlXHJcbiAgcHJvZ3Jlc3M6IGFueTtcclxuICBjYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgcHJpbWFyeUJ1dHRvblRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIHVwbG9hZFN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBsb2FkRGlhbG9nQ29tcG9uZW50PiwgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlcygpIHtcclxuICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzQWRkZWQoKSB7XHJcbiAgICBjb25zdCBmaWxlczogeyBba2V5OiBzdHJpbmddOiBGaWxlIH0gPSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5maWxlcztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpbGVzKSB7XHJcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5KSkpIHtcclxuICAgICAgICAvLyBTZWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHNcclxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXhpc3RzKGZpbGVzW2tleV0ubmFtZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoZXhpc3RzID0+IHtcclxuICAgICAgICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlQ29uZmxpY3QgPSBmaWxlc1trZXldLm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZXNba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIC8vIGlmIGV2ZXJ5dGhpbmcgd2FzIHVwbG9hZGVkIGFscmVhZHksIGp1c3QgY2xvc2UgdGhlIGRpYWxvZ1xyXG4gICAgaWYgKHRoaXMudXBsb2FkU3VjY2Vzc2Z1bCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBcInVwbG9hZGluZ1wiXHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgLy8gc3RhcnQgdGhlIHVwbG9hZCBhbmQgc2F2ZSB0aGUgcHJvZ3Jlc3MgbWFwXHJcbiAgICB0aGlzLnByb2dyZXNzID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZCh0aGlzLmZpbGVzKTtcclxuXHJcbiAgICAvLyBjb252ZXJ0IHRoZSBwcm9ncmVzcyBtYXAgaW50byBhbiBhcnJheVxyXG4gICAgY29uc3QgYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlczogYW55W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5wcm9ncmVzcykge1xyXG4gICAgICBhbGxQcm9ncmVzc09ic2VydmFibGVzLnB1c2godGhpcy5wcm9ncmVzc1trZXldLnByb2dyZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGp1c3QgdGhlIHN0YXRlIHZhcmlhYmxlc1xyXG5cclxuICAgIC8vIFRoZSBPSy1idXR0b24gc2hvdWxkIGhhdmUgdGhlIHRleHQgXCJGaW5pc2hcIiBub3dcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XHJcblxyXG4gICAgLy8gVGhlIGRpYWxvZyBzaG91bGQgbm90IGJlIGNsb3NlZCB3aGlsZSB1cGxvYWRpbmdcclxuICAgIHRoaXMuY2FuQmVDbG9zZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgY2FuY2VsLWJ1dHRvblxyXG4gICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2hlbiBhbGwgcHJvZ3Jlc3Mtb2JzZXJ2YWJsZXMgYXJlIGNvbXBsZXRlZC4uLlxyXG4gICAgZm9ya0pvaW4oYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlcykuc3Vic2NyaWJlKGVuZCA9PiB7XHJcbiAgICAgIC8vIC4uLiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWQgYWdhaW4uLi5cclxuICAgICAgdGhpcy5jYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gLi4uIHRoZSB1cGxvYWQgd2FzIHN1Y2Nlc3NmdWwuLi5cclxuICAgICAgdGhpcy51cGxvYWRTdWNjZXNzZnVsID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIC4uLiBhbmQgdGhlIGNvbXBvbmVudCBpcyBubyBsb25nZXIgdXBsb2FkaW5nXHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgKGNoYW5nZSk9XCJvbkZpbGVzQWRkZWQoKVwiIG11bHRpcGxlIC8+XG5cbjxkaXYgbWF0LWRpYWxvZy10aXRsZSBpZD1cInRpdGxlXCI+XG4gIDxkaXY+e3sgdXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nVGl0bGUgfX08L2Rpdj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidXBsb2FkaW5nIHx8IHVwbG9hZFN1Y2Nlc3NmdWxcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFkZC1maWxlcy1idG5cIiAoY2xpY2spPVwiYWRkRmlsZXMoKVwiPlxuICAgIHt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGlkPVwiY29uZmxpY3RcIiAqbmdJZj1cImV4aXN0aW5nRmlsZUNvbmZsaWN0XCI+XG4gIHt7IGV4aXN0aW5nRmlsZUNvbmZsaWN0IH19IGFscmVhZHkgZXhpc3RzIG9uIHRoZSBzZXJ2ZXIgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlblxuPC9kaXY+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtbGlzdD5cbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiPlxuICAgICAgPGg0IG1hdC1saW5lPnt7ZmlsZS5uYW1lfX08L2g0PlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJwcm9ncmVzc1wiIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1tmaWxlLm5hbWVdLnByb2dyZXNzIHwgYXN5bmNcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICA8L21hdC1saXN0PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgaWQ9XCJhY3Rpb25zXCI+XG4gIDxidXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsQnV0dG9uXCIgbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImZpbGVzLnNpemUgPiAwXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFjYW5CZUNsb3NlZFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+e3sgcHJpbWFyeUJ1dHRvblRleHQgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
@@ -0,0 +1,425 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Optional, Inject, ViewChild, Input, Output, NgModule, SkipSelf } from '@angular/core';
3
+ import * as i1 from '@angular/material/dialog';
4
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
5
+ import * as i7 from 'ngx-quill';
6
+ import { QuillEditorComponent, QuillModule } from 'ngx-quill';
7
+ import 'quill-mention';
8
+ import Quill from 'quill';
9
+ import ImageResize from 'quill-image-resize-module';
10
+ import { ImageDrop } from 'quill-image-drop-module';
11
+ import * as i2 from '@cleavelandprice/ngx-lib/active-directory';
12
+ import * as i3 from '@angular/common';
13
+ import { CommonModule } from '@angular/common';
14
+ import * as i4 from '@angular/forms';
15
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
16
+ import * as i5 from '@angular/material/icon';
17
+ import { MatIconModule } from '@angular/material/icon';
18
+ import * as i6 from '@angular/material/tooltip';
19
+ import { MatTooltipModule } from '@angular/material/tooltip';
20
+ import { MatButtonModule } from '@angular/material/button';
21
+
22
+ class Buttons {
23
+ constructor() {
24
+ //#region Font Style
25
+ this.bold = true;
26
+ this.italic = true;
27
+ this.strike = true;
28
+ this.underline = true;
29
+ //#endregion
30
+ //#region Media
31
+ this.link = true;
32
+ this.image = true;
33
+ this.video = true;
34
+ //#endregion
35
+ //#region Block Style
36
+ this.blockquote = true;
37
+ this.codeblock = true;
38
+ //#endregion
39
+ //#region Heading Style
40
+ this.h1 = true;
41
+ this.h2 = true;
42
+ //#endregion
43
+ //#region Color
44
+ this.color = true;
45
+ //#endregion
46
+ //#region List Style
47
+ this.bulleted = true;
48
+ this.ordered = true;
49
+ //#endregion
50
+ //#region Script Style
51
+ this.subScript = true;
52
+ this.superScript = true;
53
+ //#endregion
54
+ //#region Indent Style
55
+ this.increaseIndent = true;
56
+ this.decreaseIndent = true;
57
+ //#endregion
58
+ //#region DropDowns
59
+ this.align = true;
60
+ this.font = true;
61
+ this.fontSize = true;
62
+ this.headingStyle = true;
63
+ //#endregion
64
+ //#region Single Buttons
65
+ this.clean = true;
66
+ this.formula = true;
67
+ this.rtl = true;
68
+ this.editorSize = true;
69
+ //#endregion
70
+ }
71
+ }
72
+
73
+ class Icons {
74
+ constructor() {
75
+ this.maximize = 'open_in_full';
76
+ this.minimize = 'close_fullscreen';
77
+ this.popout = 'open_in_full';
78
+ this.popin = 'done';
79
+ }
80
+ }
81
+
82
+ class Tooltips {
83
+ constructor() {
84
+ //#region Font Style
85
+ this.bold = 'Bole';
86
+ this.italic = 'Italic';
87
+ this.strike = 'Strikethrough';
88
+ this.underline = 'Underline';
89
+ //#endregion
90
+ //#region Media
91
+ this.link = 'Link';
92
+ this.image = 'Insert Image';
93
+ this.video = 'Insert Video';
94
+ //#endregion
95
+ //#region Block Style
96
+ this.blockquote = 'Blockquote';
97
+ this.codeblock = 'Code Block';
98
+ //#endregion
99
+ //#region Heading Style
100
+ this.h1 = 'Heading 1';
101
+ this.h2 = 'Heading 2';
102
+ //#endregion
103
+ //#region Color
104
+ this.color = 'Font / Background Color';
105
+ //#endregion
106
+ //#region List Style
107
+ this.bulleted = 'Bulleted List';
108
+ this.ordered = 'Ordered List';
109
+ //#endregion
110
+ //#region Script Style
111
+ this.subScript = 'Subscript';
112
+ this.superScript = 'Superscript';
113
+ //#endregion
114
+ //#region Indent Style
115
+ this.increaseIndent = 'Increase Indent';
116
+ this.decreaseIndent = 'Decrease Indent';
117
+ //#endregion
118
+ //#region DropDowns
119
+ this.align = 'Align';
120
+ this.font = 'Font';
121
+ this.fontSize = 'Font Size';
122
+ this.headingStyle = 'Heading';
123
+ //#endregion
124
+ //#region Single Buttons
125
+ this.clean = 'Clean';
126
+ this.formula = 'Formula';
127
+ this.rtl = 'Right-To-Left';
128
+ this.maximize = 'Maximize';
129
+ this.minimize = 'Minimize';
130
+ this.popout = 'Popout';
131
+ this.popin = 'Done';
132
+ //#endregion
133
+ }
134
+ }
135
+
136
+ class Config {
137
+ constructor() {
138
+ this.buttons = new Buttons();
139
+ this.tooltips = new Tooltips();
140
+ this.icons = new Icons();
141
+ //#region These can be overriden via @Input()
142
+ this.format = 'html';
143
+ this.height = '50vh';
144
+ this.width = '100vw';
145
+ this.maxHeight = '85vh';
146
+ this.maxWidth = '100vw';
147
+ this.enableTooltips = true;
148
+ this.fullscreen = false;
149
+ this.fullscreenMode = 'popout';
150
+ this.readonly = false;
151
+ //#endregion
152
+ //#region Groups
153
+ this.showBlockStyle = () => this.buttons.blockquote || this.buttons.codeblock;
154
+ this.showFontStyle = () => this.buttons.bold || this.buttons.italic || this.buttons.strike || this.buttons.underline;
155
+ this.showQuickHeadingStyle = () => this.buttons.h1 || this.buttons.h2;
156
+ this.showIndentStyle = () => this.buttons.decreaseIndent || this.buttons.increaseIndent;
157
+ this.showListStyle = () => this.buttons.bulleted || this.buttons.ordered;
158
+ this.showMedia = () => this.buttons.link || this.buttons.image || this.buttons.video;
159
+ this.showScriptStyle = () => this.buttons.subScript || this.buttons.superScript;
160
+ //#endregion
161
+ }
162
+ }
163
+
164
+ Quill.register('modules/imageDrop', ImageDrop);
165
+ Quill.register('modules/imageResize', ImageResize);
166
+ class EditorComponent {
167
+ //#endregion
168
+ constructor(data, dialogRef, activeDirectoryService, dialog) {
169
+ this.dialogRef = dialogRef;
170
+ this.activeDirectoryService = activeDirectoryService;
171
+ this.dialog = dialog;
172
+ this.config = new Config();
173
+ //#region These can be passed in as @Input(), or use values from config
174
+ this.format = this.config.format;
175
+ this.height = this.config.height;
176
+ this.width = this.config.width;
177
+ this.maxHeight = this.config.maxHeight;
178
+ this.maxWidth = this.config.maxWidth;
179
+ this.enableTooltips = this.config.enableTooltips;
180
+ this.fullscreen = this.config.fullscreen;
181
+ this.fullscreenMode = this.config.fullscreenMode;
182
+ this.readonly = this.config.readonly;
183
+ //#endregion
184
+ this.fullscreenChanged = new EventEmitter();
185
+ //#region Passthrough events
186
+ this.onBlur = new EventEmitter();
187
+ this.onContentChanged = new EventEmitter();
188
+ this.onEditorChanged = new EventEmitter();
189
+ this.onEditorCreated = new EventEmitter();
190
+ this.onFocus = new EventEmitter();
191
+ this.onSelectionChanged = new EventEmitter();
192
+ if (data) {
193
+ this.formGroup = data.formGroup;
194
+ this.controlName = data.controlName;
195
+ this.ngModelValue = data.value;
196
+ this.config = data.config;
197
+ this.placeholder = data.placeholder;
198
+ this.format = data.format;
199
+ this.height = data.height;
200
+ this.width = data.width;
201
+ this.maxHeight = data.maxHeight;
202
+ this.maxWidth = data.maxWidth;
203
+ this.enableTooltips = data.enableTooltips;
204
+ this.fullscreen = data.fullscreen;
205
+ this.fullscreenMode = data.fullscreenMode;
206
+ this.readonly = data.readonly;
207
+ this.users = data.users;
208
+ }
209
+ }
210
+ ngOnInit() {
211
+ if (!this.users) {
212
+ this.activeDirectoryService.getUsers().subscribe(users => this.users = users);
213
+ }
214
+ }
215
+ toggleFullscreen() {
216
+ var _a;
217
+ this.fullscreen = !this.fullscreen;
218
+ this.fullscreenChanged.emit(this.fullscreen);
219
+ if (this.fullscreenMode === 'popout') {
220
+ if (this.dialogRef) {
221
+ this.dialogRef.close(this.formGroup ?
222
+ (_a = this.formGroup.get(this.controlName)) === null || _a === void 0 ? void 0 : _a.value :
223
+ this.ngModelValue);
224
+ }
225
+ else {
226
+ const data = {
227
+ formGroup: this.formGroup,
228
+ controlName: this.controlName,
229
+ value: this.ngModelValue,
230
+ config: this.config,
231
+ placeholder: this.placeholder,
232
+ format: this.format,
233
+ height: this.maxHeight,
234
+ width: '100%',
235
+ maxHeight: this.maxHeight,
236
+ maxWidth: '100%',
237
+ enableTooltips: this.enableTooltips,
238
+ fullscreen: this.fullscreen,
239
+ fullscreenMode: this.fullscreenMode,
240
+ readonly: this.readonly,
241
+ users: this.users
242
+ };
243
+ this.dialog.open(EditorComponent, {
244
+ disableClose: true,
245
+ width: this.maxWidth,
246
+ height: '90vh',
247
+ data
248
+ })
249
+ .afterClosed()
250
+ .subscribe(value => {
251
+ var _a;
252
+ this.fullscreen = false;
253
+ if (this.formGroup) {
254
+ (_a = this.formGroup.get(this.controlName)) === null || _a === void 0 ? void 0 : _a.setValue(value);
255
+ }
256
+ else {
257
+ this.ngModelValue = value;
258
+ }
259
+ });
260
+ }
261
+ }
262
+ }
263
+ tooltip(val) {
264
+ return this.enableTooltips ? val : '';
265
+ }
266
+ get modules() {
267
+ return this.users ?
268
+ {
269
+ imageResize: {},
270
+ imageDrop: true,
271
+ syntax: true,
272
+ mention: {
273
+ allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
274
+ onSelect: (item, insertItem) => {
275
+ const editor = this.editor.quillEditor;
276
+ insertItem(item);
277
+ // necessary because quill-mention triggers changes as 'api' instead of 'user'
278
+ editor.insertText(editor.getLength() - 1, '', 'user');
279
+ },
280
+ source: (searchTerm, renderList) => {
281
+ var _a;
282
+ if (searchTerm.length === 0) {
283
+ renderList((_a = this.users) === null || _a === void 0 ? void 0 : _a.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm);
284
+ }
285
+ else {
286
+ const matches = [];
287
+ this.users.forEach((entry) => {
288
+ if (entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
289
+ entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
290
+ matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` });
291
+ }
292
+ });
293
+ renderList(matches, searchTerm);
294
+ }
295
+ }
296
+ }
297
+ } :
298
+ undefined;
299
+ }
300
+ }
301
+ EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialogRef, optional: true }, { token: i2.ActiveDirectoryService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
302
+ EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: EditorComponent, selector: "cpquill-editor", inputs: { formGroup: "formGroup", controlName: "controlName", ngModelValue: "ngModelValue", config: "config", placeholder: "placeholder", users: "users", format: "format", height: "height", width: "width", maxHeight: "maxHeight", maxWidth: "maxWidth", enableTooltips: "enableTooltips", fullscreen: "fullscreen", fullscreenMode: "fullscreenMode", readonly: "readonly" }, outputs: { fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\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</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.QuillEditorComponent, selector: "quill-editor" }] });
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, decorators: [{
304
+ type: Component,
305
+ args: [{ selector: 'cpquill-editor', template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\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</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
306
+ }], ctorParameters: function () {
307
+ return [{ type: undefined, decorators: [{
308
+ type: Optional
309
+ }, {
310
+ type: Inject,
311
+ args: [MAT_DIALOG_DATA]
312
+ }] }, { type: i1.MatDialogRef, decorators: [{
313
+ type: Optional
314
+ }] }, { type: i2.ActiveDirectoryService }, { type: i1.MatDialog }];
315
+ }, propDecorators: { editor: [{
316
+ type: ViewChild,
317
+ args: [QuillEditorComponent, { static: false }]
318
+ }], formGroup: [{
319
+ type: Input
320
+ }], controlName: [{
321
+ type: Input
322
+ }], ngModelValue: [{
323
+ type: Input
324
+ }], config: [{
325
+ type: Input
326
+ }], placeholder: [{
327
+ type: Input
328
+ }], users: [{
329
+ type: Input
330
+ }], format: [{
331
+ type: Input
332
+ }], height: [{
333
+ type: Input
334
+ }], width: [{
335
+ type: Input
336
+ }], maxHeight: [{
337
+ type: Input
338
+ }], maxWidth: [{
339
+ type: Input
340
+ }], enableTooltips: [{
341
+ type: Input
342
+ }], fullscreen: [{
343
+ type: Input
344
+ }], fullscreenMode: [{
345
+ type: Input
346
+ }], readonly: [{
347
+ type: Input
348
+ }], fullscreenChanged: [{
349
+ type: Output
350
+ }], onBlur: [{
351
+ type: Output
352
+ }], onContentChanged: [{
353
+ type: Output
354
+ }], onEditorChanged: [{
355
+ type: Output
356
+ }], onEditorCreated: [{
357
+ type: Output
358
+ }], onFocus: [{
359
+ type: Output
360
+ }], onSelectionChanged: [{
361
+ type: Output
362
+ }] } });
363
+
364
+ class QuillEditorModule {
365
+ constructor(parentModule) {
366
+ if (parentModule) {
367
+ throw new Error('QuillEditorModule is already loaded. Import it in the AppModule only');
368
+ }
369
+ }
370
+ static forRoot() {
371
+ return {
372
+ ngModule: QuillEditorModule
373
+ };
374
+ }
375
+ }
376
+ QuillEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, deps: [{ token: QuillEditorModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
377
+ QuillEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, declarations: [EditorComponent], imports: [CommonModule,
378
+ FormsModule,
379
+ ReactiveFormsModule,
380
+ MatButtonModule,
381
+ MatDialogModule,
382
+ MatIconModule,
383
+ MatTooltipModule, i7.QuillModule], exports: [EditorComponent] });
384
+ QuillEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, imports: [CommonModule,
385
+ FormsModule,
386
+ ReactiveFormsModule,
387
+ MatButtonModule,
388
+ MatDialogModule,
389
+ MatIconModule,
390
+ MatTooltipModule,
391
+ QuillModule.forRoot()] });
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, decorators: [{
393
+ type: NgModule,
394
+ args: [{
395
+ declarations: [
396
+ EditorComponent
397
+ ],
398
+ imports: [
399
+ CommonModule,
400
+ FormsModule,
401
+ ReactiveFormsModule,
402
+ MatButtonModule,
403
+ MatDialogModule,
404
+ MatIconModule,
405
+ MatTooltipModule,
406
+ QuillModule.forRoot()
407
+ ],
408
+ exports: [
409
+ EditorComponent
410
+ ]
411
+ }]
412
+ }], ctorParameters: function () {
413
+ return [{ type: QuillEditorModule, decorators: [{
414
+ type: Optional
415
+ }, {
416
+ type: SkipSelf
417
+ }] }];
418
+ } });
419
+
420
+ /**
421
+ * Generated bundle index. Do not edit.
422
+ */
423
+
424
+ export { Buttons, Config, EditorComponent, Icons, QuillEditorModule, Tooltips };
425
+ //# sourceMappingURL=cleavelandprice-ngx-lib-quill-editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleavelandprice-ngx-lib-quill-editor.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/model/buttons.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/model/icons.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/model/tooltips.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/model/config.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/components/editor/editor.component.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/components/editor/editor.component.html","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/quill-editor.module.ts","../../../../projects/cleavelandprice/ngx-lib/quill-editor/src/cleavelandprice-ngx-lib-quill-editor.ts"],"sourcesContent":["export class Buttons {\r\n //#region Font Style\r\n bold = true;\r\n italic = true;\r\n strike = true;\r\n underline = true;\r\n //#endregion\r\n\r\n //#region Media\r\n link = true;\r\n image = true;\r\n video = true;\r\n //#endregion\r\n\r\n //#region Block Style\r\n blockquote = true;\r\n codeblock = true;\r\n //#endregion\r\n\r\n //#region Heading Style\r\n h1 = true;\r\n h2 = true;\r\n //#endregion\r\n\r\n //#region Color\r\n color = true;\r\n //#endregion\r\n\r\n //#region List Style\r\n bulleted = true;\r\n ordered = true;\r\n //#endregion\r\n\r\n //#region Script Style\r\n subScript = true;\r\n superScript = true;\r\n //#endregion\r\n\r\n //#region Indent Style\r\n increaseIndent = true;\r\n decreaseIndent = true;\r\n //#endregion\r\n\r\n //#region DropDowns\r\n align = true;\r\n font = true;\r\n fontSize = true;\r\n headingStyle = true;\r\n //#endregion\r\n\r\n //#region Single Buttons\r\n clean = true;\r\n formula = true;\r\n rtl = true;\r\n editorSize = true;\r\n //#endregion\r\n}","export class Icons {\r\n maximize = 'open_in_full';\r\n minimize = 'close_fullscreen';\r\n popout = 'open_in_full';\r\n popin = 'done';\r\n}","export class Tooltips {\r\n //#region Font Style\r\n bold = 'Bole';\r\n italic = 'Italic';\r\n strike = 'Strikethrough';\r\n underline = 'Underline';\r\n //#endregion\r\n\r\n //#region Media\r\n link = 'Link';\r\n image = 'Insert Image';\r\n video = 'Insert Video';\r\n //#endregion\r\n\r\n //#region Block Style\r\n blockquote = 'Blockquote';\r\n codeblock = 'Code Block';\r\n //#endregion\r\n\r\n //#region Heading Style\r\n h1 = 'Heading 1';\r\n h2 = 'Heading 2';\r\n //#endregion\r\n\r\n //#region Color\r\n color = 'Font / Background Color';\r\n //#endregion\r\n\r\n //#region List Style\r\n bulleted = 'Bulleted List';\r\n ordered = 'Ordered List';\r\n //#endregion\r\n\r\n //#region Script Style\r\n subScript = 'Subscript';\r\n superScript = 'Superscript';\r\n //#endregion\r\n\r\n //#region Indent Style\r\n increaseIndent = 'Increase Indent';\r\n decreaseIndent = 'Decrease Indent';\r\n //#endregion\r\n\r\n //#region DropDowns\r\n align = 'Align';\r\n font = 'Font';\r\n fontSize = 'Font Size';\r\n headingStyle = 'Heading';\r\n //#endregion\r\n\r\n //#region Single Buttons\r\n clean = 'Clean';\r\n formula = 'Formula';\r\n rtl = 'Right-To-Left';\r\n maximize = 'Maximize';\r\n minimize = 'Minimize';\r\n popout = 'Popout';\r\n popin = 'Done';\r\n //#endregion\r\n}","import { Buttons } from \"./buttons\";\r\nimport { Icons } from \"./icons\";\r\nimport { Tooltips } from \"./tooltips\";\r\n\r\nexport class Config {\r\n buttons = new Buttons();\r\n tooltips = new Tooltips();\r\n icons = new Icons();\r\n\r\n //#region These can be overriden via @Input()\r\n format: 'object' | 'html' | 'text' | 'json' = 'html';\r\n height = '50vh';\r\n width = '100vw';\r\n maxHeight = '85vh';\r\n maxWidth = '100vw';\r\n enableTooltips = true;\r\n fullscreen = false;\r\n fullscreenMode: 'expand' | 'popout' = 'popout';\r\n readonly = false;\r\n //#endregion\r\n\r\n //#region Groups\r\n showBlockStyle = () => this.buttons.blockquote || this.buttons.codeblock;\r\n showFontStyle = () => this.buttons.bold || this.buttons.italic || this.buttons.strike || this.buttons.underline;\r\n showQuickHeadingStyle = () => this.buttons.h1 || this.buttons.h2;\r\n showIndentStyle = () => this.buttons.decreaseIndent || this.buttons.increaseIndent;\r\n showListStyle = () => this.buttons.bulleted || this.buttons.ordered;\r\n showMedia = () => this.buttons.link || this.buttons.image || this.buttons.video;\r\n showScriptStyle = () => this.buttons.subScript || this.buttons.superScript;\r\n //#endregion\r\n}","import { Component, EventEmitter, Inject, Input, OnInit, Output, ViewChild, Optional } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActiveDirectoryService, User } from '@cleavelandprice/ngx-lib/active-directory';\n\nimport { ContentChange, Blur, Focus, EditorChangeContent, EditorChangeSelection, SelectionChange, QuillEditorComponent } from 'ngx-quill';\nimport 'quill-mention';\nimport Quill from 'quill';\nimport ImageResize from 'quill-image-resize-module';\nimport { ImageDrop } from 'quill-image-drop-module';\nQuill.register('modules/imageDrop', ImageDrop);\nQuill.register('modules/imageResize', ImageResize);\n\nimport { Config } from '../../model/config';\nimport { DialogData } from '../../model/dialog-data';\n\n@Component({\n selector: 'cpquill-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.css']\n})\nexport class EditorComponent implements OnInit {\n @ViewChild(QuillEditorComponent, { static: false }) editor: QuillEditorComponent | undefined;\n\n @Input() formGroup!: FormGroup;\n @Input() controlName!: string;\n @Input() ngModelValue: string | undefined;\n\n @Input() config: Config = new Config();\n @Input() placeholder: string | undefined;\n @Input() users: User[] | undefined;\n\n //#region These can be passed in as @Input(), or use values from config\n @Input() format: 'object' | 'html' | 'text' | 'json' = this.config.format;\n @Input() height = this.config.height;\n @Input() width = this.config.width;\n @Input() maxHeight = this.config.maxHeight;\n @Input() maxWidth = this.config.maxWidth;\n @Input() enableTooltips = this.config.enableTooltips;\n @Input() fullscreen = this.config.fullscreen;\n @Input() fullscreenMode: 'expand' | 'popout' = this.config.fullscreenMode;\n @Input() readonly = this.config.readonly;\n //#endregion\n\n @Output() fullscreenChanged = new EventEmitter<boolean>();\n\n //#region Passthrough events\n @Output() onBlur = new EventEmitter<Blur>();\n @Output() onContentChanged = new EventEmitter<ContentChange>();\n @Output() onEditorChanged = new EventEmitter<EditorChangeContent | EditorChangeSelection>();\n @Output() onEditorCreated = new EventEmitter();\n @Output() onFocus = new EventEmitter<Focus>();\n @Output() onSelectionChanged = new EventEmitter<SelectionChange>();\n //#endregion\n \n constructor(@Optional() @Inject(MAT_DIALOG_DATA) data: DialogData,\n @Optional() private dialogRef: MatDialogRef<EditorComponent>,\n private activeDirectoryService: ActiveDirectoryService,\n private dialog: MatDialog) {\n\n if (data) {\n this.formGroup = data.formGroup;\n this.controlName = data.controlName;\n this.ngModelValue = data.value;\n\n this.config = data.config;\n this.placeholder = data.placeholder;\n this.format = data.format;\n this.height = data.height;\n this.width = data.width;\n this.maxHeight = data.maxHeight;\n this.maxWidth = data.maxWidth;\n this.enableTooltips = data.enableTooltips;\n this.fullscreen = data.fullscreen;\n this.fullscreenMode = data.fullscreenMode;\n this.readonly = data.readonly;\n this.users = data.users;\n }\n }\n\n ngOnInit(): void {\n if (!this.users) {\n this.activeDirectoryService.getUsers().subscribe(users =>\n this.users = users\n );\n }\n }\n\n toggleFullscreen(): void {\n this.fullscreen = !this.fullscreen;\n this.fullscreenChanged.emit(this.fullscreen);\n\n if (this.fullscreenMode === 'popout') {\n if (this.dialogRef) {\n this.dialogRef.close(this.formGroup ?\n this.formGroup.get(this.controlName)?.value :\n this.ngModelValue);\n } else {\n \n const data: DialogData = {\n formGroup: this.formGroup,\n controlName: this.controlName,\n value: this.ngModelValue,\n\n config: this.config,\n placeholder: this.placeholder,\n format: this.format,\n height: this.maxHeight,\n width: '100%',\n maxHeight: this.maxHeight,\n maxWidth: '100%',\n enableTooltips: this.enableTooltips,\n fullscreen: this.fullscreen,\n fullscreenMode: this.fullscreenMode,\n readonly: this.readonly,\n users: this.users\n };\n\n this.dialog.open(EditorComponent, {\n disableClose: true,\n width: this.maxWidth,\n height: '90vh',\n data\n })\n .afterClosed()\n .subscribe(value => {\n this.fullscreen = false;\n\n if (this.formGroup) {\n this.formGroup.get(this.controlName)?.setValue(value);\n } else {\n this.ngModelValue = value;\n }\n });\n }\n }\n }\n\n tooltip(val: string): string {\n return this.enableTooltips ? val : '';\n }\n\n get modules() {\n return this.users ?\n {\n imageResize: {},\n imageDrop: true,\n syntax: true,\n mention: {\n allowedChars: /^[A-Za-z\\sÅÄÖåäö]*$/,\n\n onSelect: (item: DOMStringMap, insertItem: any) => {\n const editor = this.editor!.quillEditor\n insertItem(item)\n // necessary because quill-mention triggers changes as 'api' instead of 'user'\n editor.insertText(editor.getLength() - 1, '', 'user')\n },\n\n source: (searchTerm: string, renderList: any) => {\n if (searchTerm.length === 0) {\n renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm)\n } else {\n const matches: any[] = []\n\n this.users!.forEach((entry) => {\n if (\n entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||\n entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1\n ) {\n matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` })\n }\n })\n\n renderList(matches, searchTerm)\n }\n }\n }\n } :\n undefined;\n }\n}","<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\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</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { QuillModule } from 'ngx-quill';\n\nimport { EditorComponent } from './components/editor/editor.component';\n\n@NgModule({\n declarations: [\n EditorComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n\n MatButtonModule,\n MatDialogModule,\n MatIconModule,\n MatTooltipModule,\n\n QuillModule.forRoot()\n ],\n exports: [\n EditorComponent\n ]\n})\nexport class QuillEditorModule {\n static forRoot(): ModuleWithProviders<QuillEditorModule> {\n return {\n ngModule: QuillEditorModule\n };\n }\n\n constructor(@Optional() @SkipSelf() parentModule: QuillEditorModule) {\n if (parentModule) {\n throw new Error(\n 'QuillEditorModule is already loaded. Import it in the AppModule only');\n }\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}