UNPKG

angular4-tinymce-biznet

Version:

Angular component for TinyMCE MCE WYSIWYG editor By Biznet

131 lines (111 loc) 4.11 kB
# angular2-tinymce `Now compatible with Angular 4.0.1 with AOT support! and Filemanager Responsive` ## Usage First, install package via npm: ``` npm install --save angular4-tinymce-biznet ``` Then copy lightgray skin files from [here](https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.4/skins/lightgray/skin.min.css) and [here](https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.4/skins/lightgray/content.min.css) to the `/assets` folder. So, i.e. there must be available `/assets/tinymce/skins/lightgray/skin.min.css` and `/assets/tinymce/skins/lightgray/content.min.css` file. You can override skin path by specifying `skin_url` option (default `/assets/tinymce/skins/lightgray`). Import `TinymceModule` in you `app.module.ts` like this: ```typescript import { TinymceModule } from 'angular2-tinymce'; @NgModule({ imports: [ ... TinymceModule.withConfig({}) ], ... }) export class AppModule { } ``` Then use it: ```html <app-tinymce [formControl]='contentControl'></app-tinymce> ``` or ```html <app-tinymce [(ngModel)]='content'></app-tinymce> ``` ## Configure You can configure TinyMCE globally: ```typescript import { TinymceModule } from 'angular2-tinymce'; @NgModule({ imports: [ ... TinymceModule.withConfig({ ... //any TinyMCE config here }) ], ... }) export class AppModule { } ``` Please note that config is extended a bit. - Besides the original config angular2-tinymce supports `baseURL` for providing, i.e., custom plugins paths. - `auto_focus` option is boolean instead of string. - You cannot specify `selector` option (and you don't need to, right?). - `setup` and `init_instance_callback` are executed after the components'. - You can view more info about supported options [here] (src/angular2-tinymce.config.interface.ts) ## Plugins If you need other plugins than standart (`link paste table advlist autoresize lists code`) you should create plugins folder in the `baseURL` (default '/assets/tinymce') and place your plugins in it. **Example:** Place emoticons plugin to an `/assets/tinymce/plugins` folder, then: ```typescript import { TinymceModule } from 'angular2-tinymce'; @NgModule({ imports: [ ... TinymceModule.withConfig({ plugins: ['emoticons'], toolbar: 'emoticons' }) ], ... }) export class AppModule { } ``` Alternativaly you can `npm install tinymce --save` and import plugins like that: ```typescript import 'tinymce/plugins/emoticons/plugin.js'; ``` ## SystemJS configuration When using SystemJS, you need to load tinymce plugins as global shim modules instead of AMD modules (default). Update the file systemjs.config.js as following: ```typescript System.config({ meta: { ... 'node_modules/tinymce/plugins/advlist/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/autoresize/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/code/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/link/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/lists/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/paste/plugin.js': { format: 'global' }, 'node_modules/tinymce/plugins/table/plugin.js': { format: 'global' }, 'node_modules/tinymce/themes/modern/theme.js': { format: 'global' }, }, map: { ... 'angular2-tinymce': 'node_modules/angular2-tinymce/dist', 'tinymce': 'node_modules/tinymce', }, packages: { ... 'angular2-tinymce': { main: 'index.js', defaultExtension: 'js' }, 'tinymce': { defaultExtension: 'js' }, } }); ``` Note that tinymce npm package should be loaded in addition to angular2-tinymce when using SystemJS. Otherwise, it won't be able to load the plugins. ## Contributing Please feel free to leave your PRs, issues, feature requests. ## Upcoming features - [x] Tinymce configuration - [x] Aot support - [ ] Per-editor configuration - [ ] Add github pages demo - [ ] File uploading - [ ] Events - [ ] Tests