From 30b513c3f21ce86f6da959f9f90133cfcb545915 Mon Sep 17 00:00:00 2001 From: sibiraj-s Date: Wed, 22 Apr 2020 23:17:28 +0530 Subject: [PATCH] fix: resolve ivy compatibility issues --- .compodocrc.json | 7 +- .gitignore | 3 +- README.md | 2 +- angular.json | 103 ++++++--- browserslist => demo/browserslist | 0 {e2e => demo/e2e}/protractor.conf.js | 0 {e2e => demo/e2e}/src/app.e2e-spec.ts | 0 {e2e => demo/e2e}/src/app.po.ts | 0 {e2e => demo/e2e}/tsconfig.json | 2 +- karma.conf.js => demo/karma.conf.js | 2 +- {src => demo/src}/app/app.component.html | 2 +- {src => demo/src}/app/app.component.scss | 0 {src => demo/src}/app/app.component.spec.ts | 2 +- {src => demo/src}/app/app.component.ts | 0 {src => demo/src}/app/app.module.ts | 2 +- .../icons => demo/src/assets}/ngx-editor.svg | 0 .../src}/environments/environment.prod.ts | 0 {src => demo/src}/environments/environment.ts | 0 {src => demo/src}/favicon.ico | Bin {src => demo/src}/index.html | 0 {src => demo/src}/main.ts | 0 {src => demo/src}/polyfills.ts | 0 {src => demo/src}/styles.scss | 0 demo/src/test.ts | 25 +++ tsconfig.app.json => demo/tsconfig.app.json | 4 +- tsconfig.spec.json => demo/tsconfig.spec.json | 4 +- demo/tslint.json | 17 ++ package-lock.json | 47 ++++- package.json | 23 +- public_api.ts | 1 - scripts/build.sh | 12 -- scripts/postbuild.js | 20 ++ scripts/release.sh | 2 +- .../ang_edit_128.ico | Bin .../ang_edit_128.png | Bin .../ang_edit_256.ico | Bin .../ang_edit_256.png | Bin .../ang_edit_32.png | Bin .../ang_edit_32_128.ico | Bin .../ang_edit_32_256.ico | Bin .../ang_edit_64.ico | Bin .../ang_edit_64.png | Bin .../ngx-editor.gvdesign | Bin {src/assets/icons => sketch}/ngx-editor.png | Bin .../ngx-editor1.svg => sketch/ngx-editor.svg | 0 .../ngx-editor_64x64.ico | Bin .../icons/ngx-editor-opt1/ngx-editor1.png | Bin 10422 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_128.ico | Bin 67646 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_128.png | Bin 4178 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_256.ico | Bin 7835 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_256.png | Bin 7276 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_32.ico | Bin 766 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_32.png | Bin 1033 -> 0 bytes .../ngx-editor-opt2/ang_editv4_32_128.ico | Bin 82734 -> 0 bytes .../ngx-editor-opt2/ang_editv4_32_256.ico | Bin 341478 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_64.ico | Bin 16958 -> 0 bytes .../icons/ngx-editor-opt2/ang_editv4_64.png | Bin 2148 -> 0 bytes .../ngx-editor-opt2/ngx-editor2.gvdesign | Bin 2932 -> 0 bytes .../icons/ngx-editor-opt2/ngx-editor2.png | Bin 9241 -> 0 bytes .../icons/ngx-editor-opt2/ngx-editor2.svg | 23 -- .../ngx-editor-opt2/ngx-editor2_64x64.ico | Bin 16958 -> 0 bytes src/assets/styles/_buttons.scss | 49 ----- src/assets/styles/_forms.scss | 53 ----- src/assets/styles/_popover.scss | 198 ------------------ src/karma.conf.js | 32 +++ .../ngx-editor.component.html | 0 .../ngx-editor.component.scss | 0 .../ngx-editor.component.spec.ts | 0 .../ngx-editor.component.ts | 0 .../ngx-editor => lib}/ngx-editor.module.ts | 0 .../plugins/menu/MenuBarView.ts | 0 .../plugins/menu/constants.ts | 0 .../plugins/menu/getMenu.ts | 0 .../ngx-editor => lib}/plugins/menu/index.ts | 0 .../ngx-editor => lib}/plugins/menu/menu.ts | 0 .../ngx-editor => lib}/plugins/placeholder.ts | 0 src/{app/ngx-editor => lib}/types.ts | 0 .../utils/computeOptions.ts | 0 .../ngx-editor => lib}/utils/icons/bold.ts | 0 .../ngx-editor => lib}/utils/icons/code.ts | 0 .../ngx-editor => lib}/utils/icons/index.ts | 0 .../ngx-editor => lib}/utils/icons/italic.ts | 0 src/{app/ngx-editor => lib}/utils/plugins.ts | 0 ng-package.json => src/ng-package.json | 6 +- src/package.json | 31 +++ src/public-api.ts | 6 + src/test.ts | 1 + src/tsconfig.lib.json | 23 ++ src/tsconfig.lib.prod.json | 6 + src/tsconfig.spec.json | 17 ++ src/tslint.json | 17 ++ tsconfig.json | 8 +- tslint.json | 26 +-- {extras => wiki}/docs/colors.md | 0 {extras => wiki}/docs/configuartion.md | 0 {extras => wiki}/docs/errors.md | 0 {extras => wiki}/docs/font-size.md | 0 {extras => wiki}/docs/image-uploader.md | 0 {extras => wiki}/docs/prerequisites.md | 0 {extras => wiki}/docs/resizer.md | 0 {extras => wiki}/docs/toolbar.md | 0 {extras => wiki}/docs/video.md | 0 {extras => wiki}/summary.json | 0 103 files changed, 356 insertions(+), 420 deletions(-) rename browserslist => demo/browserslist (100%) rename {e2e => demo/e2e}/protractor.conf.js (100%) rename {e2e => demo/e2e}/src/app.e2e-spec.ts (100%) rename {e2e => demo/e2e}/src/app.po.ts (100%) rename {e2e => demo/e2e}/tsconfig.json (83%) rename karma.conf.js => demo/karma.conf.js (93%) rename {src => demo/src}/app/app.component.html (92%) rename {src => demo/src}/app/app.component.scss (100%) rename {src => demo/src}/app/app.component.spec.ts (93%) rename {src => demo/src}/app/app.component.ts (100%) rename {src => demo/src}/app/app.module.ts (84%) rename {src/assets/icons => demo/src/assets}/ngx-editor.svg (100%) rename {src => demo/src}/environments/environment.prod.ts (100%) rename {src => demo/src}/environments/environment.ts (100%) rename {src => demo/src}/favicon.ico (100%) rename {src => demo/src}/index.html (100%) rename {src => demo/src}/main.ts (100%) rename {src => demo/src}/polyfills.ts (100%) rename {src => demo/src}/styles.scss (100%) create mode 100644 demo/src/test.ts rename tsconfig.app.json => demo/tsconfig.app.json (69%) rename tsconfig.spec.json => demo/tsconfig.spec.json (75%) create mode 100644 demo/tslint.json delete mode 100644 public_api.ts delete mode 100644 scripts/build.sh create mode 100644 scripts/postbuild.js rename src/assets/icons/ngx-editor-opt1/ang_edit1_128.ico => sketch/ang_edit_128.ico (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_128.png => sketch/ang_edit_128.png (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_256.ico => sketch/ang_edit_256.ico (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_256.png => sketch/ang_edit_256.png (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_32.png => sketch/ang_edit_32.png (100%) rename src/assets/icons/ngx-editor-opt1/ang_editv1_32_128.ico => sketch/ang_edit_32_128.ico (100%) rename src/assets/icons/ngx-editor-opt1/ang_editv1_32_256.ico => sketch/ang_edit_32_256.ico (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_64.ico => sketch/ang_edit_64.ico (100%) rename src/assets/icons/ngx-editor-opt1/ang_edit1_64.png => sketch/ang_edit_64.png (100%) rename src/assets/icons/ngx-editor-opt1/ngx-editor1.gvdesign => sketch/ngx-editor.gvdesign (100%) rename {src/assets/icons => sketch}/ngx-editor.png (100%) rename src/assets/icons/ngx-editor-opt1/ngx-editor1.svg => sketch/ngx-editor.svg (100%) rename src/assets/icons/ngx-editor-opt1/ngx-editor1_64x64.ico => sketch/ngx-editor_64x64.ico (100%) delete mode 100644 src/assets/icons/ngx-editor-opt1/ngx-editor1.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_128.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_128.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_256.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_256.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_32.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_32.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_32_128.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_32_256.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_64.ico delete mode 100644 src/assets/icons/ngx-editor-opt2/ang_editv4_64.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ngx-editor2.gvdesign delete mode 100644 src/assets/icons/ngx-editor-opt2/ngx-editor2.png delete mode 100644 src/assets/icons/ngx-editor-opt2/ngx-editor2.svg delete mode 100644 src/assets/icons/ngx-editor-opt2/ngx-editor2_64x64.ico delete mode 100644 src/assets/styles/_buttons.scss delete mode 100644 src/assets/styles/_forms.scss delete mode 100644 src/assets/styles/_popover.scss create mode 100644 src/karma.conf.js rename src/{app/ngx-editor => lib}/ngx-editor.component.html (100%) rename src/{app/ngx-editor => lib}/ngx-editor.component.scss (100%) rename src/{app/ngx-editor => lib}/ngx-editor.component.spec.ts (100%) rename src/{app/ngx-editor => lib}/ngx-editor.component.ts (100%) rename src/{app/ngx-editor => lib}/ngx-editor.module.ts (100%) rename src/{app/ngx-editor => lib}/plugins/menu/MenuBarView.ts (100%) rename src/{app/ngx-editor => lib}/plugins/menu/constants.ts (100%) rename src/{app/ngx-editor => lib}/plugins/menu/getMenu.ts (100%) rename src/{app/ngx-editor => lib}/plugins/menu/index.ts (100%) rename src/{app/ngx-editor => lib}/plugins/menu/menu.ts (100%) rename src/{app/ngx-editor => lib}/plugins/placeholder.ts (100%) rename src/{app/ngx-editor => lib}/types.ts (100%) rename src/{app/ngx-editor => lib}/utils/computeOptions.ts (100%) rename src/{app/ngx-editor => lib}/utils/icons/bold.ts (100%) rename src/{app/ngx-editor => lib}/utils/icons/code.ts (100%) rename src/{app/ngx-editor => lib}/utils/icons/index.ts (100%) rename src/{app/ngx-editor => lib}/utils/icons/italic.ts (100%) rename src/{app/ngx-editor => lib}/utils/plugins.ts (100%) rename ng-package.json => src/ng-package.json (76%) create mode 100644 src/package.json create mode 100644 src/public-api.ts create mode 100644 src/tsconfig.lib.json create mode 100644 src/tsconfig.lib.prod.json create mode 100644 src/tsconfig.spec.json create mode 100644 src/tslint.json rename {extras => wiki}/docs/colors.md (100%) rename {extras => wiki}/docs/configuartion.md (100%) rename {extras => wiki}/docs/errors.md (100%) rename {extras => wiki}/docs/font-size.md (100%) rename {extras => wiki}/docs/image-uploader.md (100%) rename {extras => wiki}/docs/prerequisites.md (100%) rename {extras => wiki}/docs/resizer.md (100%) rename {extras => wiki}/docs/toolbar.md (100%) rename {extras => wiki}/docs/video.md (100%) rename {extras => wiki}/summary.json (100%) diff --git a/.compodocrc.json b/.compodocrc.json index ff7e41ca..b7633feb 100644 --- a/.compodocrc.json +++ b/.compodocrc.json @@ -3,13 +3,14 @@ "name": "NgxEditor", "output": "./docs/", "tsconfig": "./tsconfig.docs.json", - "customFavicon": "./src/favicon.ico", - "includes": "./extras", + "customFavicon": "./demo/src/favicon.ico", + "includes": "./wiki", "includesName": "Wiki", "disableLifeCycleHooks": true, "disablePrivate": true, "disableProtected": true, "disableInternal": true, "disableCoverage": true, - "hideGenerator": true + "hideGenerator": true, + "assetsFolder": "sketch" } diff --git a/.gitignore b/.gitignore index a09a5808..b9e1f99e 100644 --- a/.gitignore +++ b/.gitignore @@ -46,5 +46,4 @@ testem.log Thumbs.db # Output directories -build/ -docs/ +/docs diff --git a/README.md b/README.md index 0dcf63bc..23aada5e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

- ngxEditor + ngxEditor

A Simple WYSIWYG Editor for Angular 6 Applications.

diff --git a/angular.json b/angular.json index e258fd25..f5aeef15 100644 --- a/angular.json +++ b/angular.json @@ -4,31 +4,71 @@ "newProjectRoot": "projects", "projects": { "ngx-editor": { + "projectType": "library", + "root": "", + "sourceRoot": "src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "src/tsconfig.lib.json", + "project": "src/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "src/tsconfig.lib.prod.json" + } + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.lib.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "demo": { "projectType": "application", "schematics": { "@schematics/angular:component": { "style": "scss" } }, - "root": "", - "sourceRoot": "src", - "prefix": "", + "root": "demo", + "sourceRoot": "demo/src", + "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { - "outputPath": "dist/ngx-editor", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.app.json", + "outputPath": "dist/demo", + "index": "demo/src/index.html", + "main": "demo/src/main.ts", + "polyfills": "demo/src/polyfills.ts", + "tsConfig": "demo/tsconfig.app.json", "aot": true, "assets": [ - "src/favicon.ico", - "src/assets" + "demo/src/favicon.ico", + "demo/src/assets" ], "styles": [ - "src/styles.scss" + "demo/src/styles.scss" ], "scripts": [] }, @@ -36,8 +76,8 @@ "production": { "fileReplacements": [ { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" + "replace": "demo/src/environments/environment.ts", + "with": "demo/src/environments/environment.prod.ts" } ], "optimization": true, @@ -66,33 +106,33 @@ "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { - "browserTarget": "ngx-editor:build" + "browserTarget": "demo:build" }, "configurations": { "production": { - "browserTarget": "ngx-editor:build:production" + "browserTarget": "demo:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { - "browserTarget": "ngx-editor:build" + "browserTarget": "demo:build" } }, "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.spec.json", - "karmaConfig": "karma.conf.js", + "main": "demo/src/test.ts", + "polyfills": "demo/src/polyfills.ts", + "tsConfig": "demo/tsconfig.spec.json", + "karmaConfig": "demo/karma.conf.js", "assets": [ - "src/favicon.ico", - "src/assets" + "demo/src/favicon.ico", + "demo/src/assets" ], "styles": [ - "src/styles.scss" + "demo/src/styles.scss" ], "scripts": [] } @@ -101,9 +141,9 @@ "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ - "tsconfig.app.json", - "tsconfig.spec.json", - "e2e/tsconfig.json" + "demo/tsconfig.app.json", + "demo/tsconfig.spec.json", + "demo/e2e/tsconfig.json" ], "exclude": [ "**/node_modules/**" @@ -113,16 +153,17 @@ "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "ngx-editor:serve" + "protractorConfig": "demo/e2e/protractor.conf.js", + "devServerTarget": "demo:serve" }, "configurations": { "production": { - "devServerTarget": "ngx-editor:serve:production" + "devServerTarget": "demo:serve:production" } } } } - }}, - "defaultProject": "ngx-editor" + } + }, + "defaultProject": "demo" } diff --git a/browserslist b/demo/browserslist similarity index 100% rename from browserslist rename to demo/browserslist diff --git a/e2e/protractor.conf.js b/demo/e2e/protractor.conf.js similarity index 100% rename from e2e/protractor.conf.js rename to demo/e2e/protractor.conf.js diff --git a/e2e/src/app.e2e-spec.ts b/demo/e2e/src/app.e2e-spec.ts similarity index 100% rename from e2e/src/app.e2e-spec.ts rename to demo/e2e/src/app.e2e-spec.ts diff --git a/e2e/src/app.po.ts b/demo/e2e/src/app.po.ts similarity index 100% rename from e2e/src/app.po.ts rename to demo/e2e/src/app.po.ts diff --git a/e2e/tsconfig.json b/demo/e2e/tsconfig.json similarity index 83% rename from e2e/tsconfig.json rename to demo/e2e/tsconfig.json index 39b800f7..487654f5 100644 --- a/e2e/tsconfig.json +++ b/demo/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../tsconfig.json", + "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/e2e", "module": "commonjs", diff --git a/karma.conf.js b/demo/karma.conf.js similarity index 93% rename from karma.conf.js rename to demo/karma.conf.js index 76a1db91..27da870e 100644 --- a/karma.conf.js +++ b/demo/karma.conf.js @@ -16,7 +16,7 @@ module.exports = function (config) { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { - dir: require('path').join(__dirname, './coverage/ngx-editor'), + dir: require('path').join(__dirname, '../coverage/demo'), reports: ['html', 'lcovonly', 'text-summary'], fixWebpackSourcePaths: true }, diff --git a/src/app/app.component.html b/demo/src/app/app.component.html similarity index 92% rename from src/app/app.component.html rename to demo/src/app/app.component.html index ed49774c..0daa7f29 100644 --- a/src/app/app.component.html +++ b/demo/src/app/app.component.html @@ -2,7 +2,7 @@
diff --git a/src/app/app.component.scss b/demo/src/app/app.component.scss similarity index 100% rename from src/app/app.component.scss rename to demo/src/app/app.component.scss diff --git a/src/app/app.component.spec.ts b/demo/src/app/app.component.spec.ts similarity index 93% rename from src/app/app.component.spec.ts rename to demo/src/app/app.component.spec.ts index 1274bdcf..15d85b27 100644 --- a/src/app/app.component.spec.ts +++ b/demo/src/app/app.component.spec.ts @@ -1,9 +1,9 @@ import { TestBed, async, ComponentFixture } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; +import { NgxEditorModule } from 'ngx-editor'; import { AppComponent } from './app.component'; -import { NgxEditorModule } from './ngx-editor/ngx-editor.module'; import { DebugElement } from '@angular/core'; describe('AppComponent', () => { diff --git a/src/app/app.component.ts b/demo/src/app/app.component.ts similarity index 100% rename from src/app/app.component.ts rename to demo/src/app/app.component.ts diff --git a/src/app/app.module.ts b/demo/src/app/app.module.ts similarity index 84% rename from src/app/app.module.ts rename to demo/src/app/app.module.ts index 4d561e0b..339c2ce3 100644 --- a/src/app/app.module.ts +++ b/demo/src/app/app.module.ts @@ -3,7 +3,7 @@ import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; -import { NgxEditorModule } from './ngx-editor/ngx-editor.module'; +import { NgxEditorModule } from '../../../src/lib/ngx-editor.module'; @NgModule({ declarations: [ diff --git a/src/assets/icons/ngx-editor.svg b/demo/src/assets/ngx-editor.svg similarity index 100% rename from src/assets/icons/ngx-editor.svg rename to demo/src/assets/ngx-editor.svg diff --git a/src/environments/environment.prod.ts b/demo/src/environments/environment.prod.ts similarity index 100% rename from src/environments/environment.prod.ts rename to demo/src/environments/environment.prod.ts diff --git a/src/environments/environment.ts b/demo/src/environments/environment.ts similarity index 100% rename from src/environments/environment.ts rename to demo/src/environments/environment.ts diff --git a/src/favicon.ico b/demo/src/favicon.ico similarity index 100% rename from src/favicon.ico rename to demo/src/favicon.ico diff --git a/src/index.html b/demo/src/index.html similarity index 100% rename from src/index.html rename to demo/src/index.html diff --git a/src/main.ts b/demo/src/main.ts similarity index 100% rename from src/main.ts rename to demo/src/main.ts diff --git a/src/polyfills.ts b/demo/src/polyfills.ts similarity index 100% rename from src/polyfills.ts rename to demo/src/polyfills.ts diff --git a/src/styles.scss b/demo/src/styles.scss similarity index 100% rename from src/styles.scss rename to demo/src/styles.scss diff --git a/demo/src/test.ts b/demo/src/test.ts new file mode 100644 index 00000000..50193eb0 --- /dev/null +++ b/demo/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/tsconfig.app.json b/demo/tsconfig.app.json similarity index 69% rename from tsconfig.app.json rename to demo/tsconfig.app.json index f758d982..1a750b72 100644 --- a/tsconfig.app.json +++ b/demo/tsconfig.app.json @@ -1,7 +1,7 @@ { - "extends": "./tsconfig.json", + "extends": "../tsconfig.json", "compilerOptions": { - "outDir": "./out-tsc/app", + "outDir": "../out-tsc/app", "types": [] }, "files": [ diff --git a/tsconfig.spec.json b/demo/tsconfig.spec.json similarity index 75% rename from tsconfig.spec.json rename to demo/tsconfig.spec.json index 6400fde7..86d00b0b 100644 --- a/tsconfig.spec.json +++ b/demo/tsconfig.spec.json @@ -1,7 +1,7 @@ { - "extends": "./tsconfig.json", + "extends": "../tsconfig.json", "compilerOptions": { - "outDir": "./out-tsc/spec", + "outDir": "../out-tsc/spec", "types": [ "jasmine", "node" diff --git a/demo/tslint.json b/demo/tslint.json new file mode 100644 index 00000000..aa7c3eeb --- /dev/null +++ b/demo/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} diff --git a/package-lock.json b/package-lock.json index e10ecc8e..03859288 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,7 @@ { "name": "ngx-editor", - "version": "5.0.0-alpha", - "lockfileVersion": 1, "requires": true, + "lockfileVersion": 1, "dependencies": { "@angular-devkit/architect": { "version": "0.901.1", @@ -105,6 +104,50 @@ } } }, + "@angular-devkit/build-ng-packagr": { + "version": "0.901.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.901.2.tgz", + "integrity": "sha512-EQ592DSpTsWWvjNbZEcu32JITRetjsjKYjb+ahc/gBdODredabyAaRkxgK5U9pox/HE8QSf3aYswhQq8qwqczw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.901.2", + "rxjs": "6.5.4" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.901.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.2.tgz", + "integrity": "sha512-0Tn/gMuls2CpizMdsjDvJNVKwrghitabiv4rs88MepBvxfopwqaNP5MD+WNGlnB8REgCfYEgA8JFLoLiCBpxaA==", + "dev": true, + "requires": { + "@angular-devkit/core": "9.1.2", + "rxjs": "6.5.4" + } + }, + "@angular-devkit/core": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.2.tgz", + "integrity": "sha512-gOAu2cWcJSzFN1CZnLxJFxq2VucJ4AwIqiSDXaVXmJCJMUpQOGSGGcQwc0K/VHQTXB6TuO1m/zdT1VSmTP1LYA==", + "dev": true, + "requires": { + "ajv": "6.12.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.4", + "source-map": "0.7.3" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, "@angular-devkit/build-optimizer": { "version": "0.901.1", "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.1.tgz", diff --git a/package.json b/package.json index a408e22b..994a40a8 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,27 @@ { "name": "ngx-editor", - "version": "5.0.0-alpha", - "description": "WYSIWYG Editor for Angular Applications", - "license": "MIT", - "repository": "https://github.com/sibiraj-s/ngx-editor.git", - "bugs": "https://github.com/sibiraj-s/ngx-editor/issues", - "homepage": "https://github.com/sibiraj-s/ngx-editor", + "private": true, "scripts": { - "build": "ng build --prod", - "build:package": "sh ./scripts/build.sh", + "build:demo": "ng build demo --prod", + "build:lib": "ng build ngx-editor --prod ", "build:docs": "compodoc", + "build": "npm run build:demo && npm run build:lib", "e2e": "ng e2e", "lint": "ng lint", "lint:scripts": "eslint ./scripts", "ng": "ng", "prebuild": "npm run lint", - "postbuild": "npm run build:package", "prepublishOnly": "node ./scripts/prepublish.js", "prerelease": "npm run build", "publish:docs": "npm run build:docs && node ./scripts/publishdocs.js", + "postbuild": "node ./scripts/postbuild.js", "release": "sh ./scripts/release.sh", - "start": "ng serve --aot --open --port 5002 --host 0.0.0.0", + "start:demo": "ng serve demo --aot --open --port 5002 --host 0.0.0.0", "serve:docs": "compodoc --serve --watch --open --output=\"docs/\"", - "test": "ng test --browsers ChromeHeadless --watch false", - "test:watch": "ng test" + "test:app": "ng test demo --browsers ChromeHeadless --watch false", + "test:package": "ng test ngx-editor --browsers ChromeHeadless --watch false", + "test": "npm run test:app && npm run test:package", + "watch:lib": "ng build ngx-editor --watch" }, "keywords": [ "angular-editor", @@ -49,6 +47,7 @@ }, "devDependencies": { "@angular-devkit/build-angular": "~0.901.1", + "@angular-devkit/build-ng-packagr": "~0.901.1", "@angular/animations": "~9.1.1", "@angular/cli": "~9.1.1", "@angular/common": "~9.1.1", diff --git a/public_api.ts b/public_api.ts deleted file mode 100644 index 8be99279..00000000 --- a/public_api.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './src/app/ngx-editor/ngx-editor.module'; diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100644 index 22c484a5..00000000 --- a/scripts/build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# remove existing builds -rm -rf build/ -rm -rf dist/ - -# build -./node_modules/.bin/ng-packagr -p ng-package.json - -# delete unwanted folders -rm -rf .ng_build -rm -rf .ng_pkg_build diff --git a/scripts/postbuild.js b/scripts/postbuild.js new file mode 100644 index 00000000..a9ed8bbc --- /dev/null +++ b/scripts/postbuild.js @@ -0,0 +1,20 @@ +const fs = require('fs'); +const path = require('path'); + +const chalk = require('chalk'); + +async function copyFile(srcFilePath, destFilePath) { + const fileName = path.basename(srcFilePath); + try { + const srcPath = path.resolve(process.cwd(), srcFilePath); + const destPath = path.resolve(process.cwd(), 'dist/ngx-editor', destFilePath); + await fs.promises.copyFile(srcPath, destPath); + console.log(chalk.green(`- File Copied: ${fileName}`)); + } catch (err) { + console.log(chalk.red(`Error while copying ${fileName}`), err); + } +} + +copyFile('README.md', 'README.md'); +copyFile('CHANGELOG.md', 'CHANGELOG.md'); +copyFile('LICENSE', 'LICENSE'); diff --git a/scripts/release.sh b/scripts/release.sh index 598c594d..4fd78a58 100644 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -1,4 +1,4 @@ #!/bin/bash # publish to npm -npm publish build/ +npm publish dist/ngx-editor/ diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_128.ico b/sketch/ang_edit_128.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_128.ico rename to sketch/ang_edit_128.ico diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_128.png b/sketch/ang_edit_128.png similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_128.png rename to sketch/ang_edit_128.png diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_256.ico b/sketch/ang_edit_256.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_256.ico rename to sketch/ang_edit_256.ico diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_256.png b/sketch/ang_edit_256.png similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_256.png rename to sketch/ang_edit_256.png diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_32.png b/sketch/ang_edit_32.png similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_32.png rename to sketch/ang_edit_32.png diff --git a/src/assets/icons/ngx-editor-opt1/ang_editv1_32_128.ico b/sketch/ang_edit_32_128.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_editv1_32_128.ico rename to sketch/ang_edit_32_128.ico diff --git a/src/assets/icons/ngx-editor-opt1/ang_editv1_32_256.ico b/sketch/ang_edit_32_256.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_editv1_32_256.ico rename to sketch/ang_edit_32_256.ico diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_64.ico b/sketch/ang_edit_64.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_64.ico rename to sketch/ang_edit_64.ico diff --git a/src/assets/icons/ngx-editor-opt1/ang_edit1_64.png b/sketch/ang_edit_64.png similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ang_edit1_64.png rename to sketch/ang_edit_64.png diff --git a/src/assets/icons/ngx-editor-opt1/ngx-editor1.gvdesign b/sketch/ngx-editor.gvdesign similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ngx-editor1.gvdesign rename to sketch/ngx-editor.gvdesign diff --git a/src/assets/icons/ngx-editor.png b/sketch/ngx-editor.png similarity index 100% rename from src/assets/icons/ngx-editor.png rename to sketch/ngx-editor.png diff --git a/src/assets/icons/ngx-editor-opt1/ngx-editor1.svg b/sketch/ngx-editor.svg similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ngx-editor1.svg rename to sketch/ngx-editor.svg diff --git a/src/assets/icons/ngx-editor-opt1/ngx-editor1_64x64.ico b/sketch/ngx-editor_64x64.ico similarity index 100% rename from src/assets/icons/ngx-editor-opt1/ngx-editor1_64x64.ico rename to sketch/ngx-editor_64x64.ico diff --git a/src/assets/icons/ngx-editor-opt1/ngx-editor1.png b/src/assets/icons/ngx-editor-opt1/ngx-editor1.png deleted file mode 100644 index 0899b254d6bf280d535ac578f9c2262eb41f8263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10422 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 diff --git a/src/assets/icons/ngx-editor-opt2/ang_editv4_128.ico b/src/assets/icons/ngx-editor-opt2/ang_editv4_128.ico deleted file mode 100644 index bf0929bf22da2b8cd6afc5820825c9f0678a10ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67646 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 YLDQ3OMKKPYo&*4>8zy?6t~*Bj4`TuL7ytkO diff --git a/src/assets/icons/ngx-editor-opt2/ang_editv4_256.ico b/src/assets/icons/ngx-editor-opt2/ang_editv4_256.ico deleted file mode 100644 index dbecc0420626b487e12a6f6a8d33f68c9465a676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7835 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 diff --git a/src/assets/icons/ngx-editor-opt2/ang_editv4_32.png b/src/assets/icons/ngx-editor-opt2/ang_editv4_32.png deleted file mode 100644 index fdf487fb9f3c3930f8c6e7d5f4eb04be7f750897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1033 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 diff --git a/src/assets/icons/ngx-editor-opt2/ang_editv4_32_256.ico b/src/assets/icons/ngx-editor-opt2/ang_editv4_32_256.ico deleted file mode 100644 index f8cde379cb63c569293726ac00912a3a06b15ac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341478 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 diff --git a/src/assets/icons/ngx-editor-opt2/ang_editv4_64.png b/src/assets/icons/ngx-editor-opt2/ang_editv4_64.png deleted file mode 100644 index e5745abed2f5f843e934973c132c787526f4d6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2148 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 diff --git a/src/assets/icons/ngx-editor-opt2/ngx-editor2.png b/src/assets/icons/ngx-editor-opt2/ngx-editor2.png deleted file mode 100644 index 659355730f2d2153ca25dfd3a51a74026c17483d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9241 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 - - - - - - - - - - - - - diff --git a/src/assets/icons/ngx-editor-opt2/ngx-editor2_64x64.ico b/src/assets/icons/ngx-editor-opt2/ngx-editor2_64x64.ico deleted file mode 100644 index 48c207baa5633f748c6ac5befbf8addfb1aa8514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI33v3ic7=X7FQVJLlqG*glFbbl9(h3xU*ns$=h>rk1K)^>yP=Sb{5eltnLKOuX zAb=&PRR|(bQA~JNL|fWg9;HHo-u12z`hdQUw%6nJWX@YlA38H!6ZD)^-72cRtaKVTwn3YXh6#wZ&bWU9gMB z+kSw3er-2l=WRe^!J9r1$!H6@6F;)#d&7_ATe=y)(Mx_|>~x#7hhMz~x>?`n`>=X? zhUww=F3uald<)L<7;`+R<_=%^A7qZy-Wr~d3O{@uws2lmm-NgxUInDPhzwnU8s z=k_EWq$Hi^$Hr*pl*2WD+r!uV&g|dBYs8VUB{47HHt;3CJ9fbcfwqCK_;)7OIrM9( z-vxFd4Wtcx#V;Ml?$`ru17Gu}#McUl9@9Yd17Gv+Osez9EiK@08~B=^#z8RKz#sg< zYy*Gs2dfSI$sde1@Hc<3*&q=7!DNF#@dt|yI)i^=-(uLZsus#LX87`>8W`V4{W?F; z&&H1MM}}x&^_$gDp=Y7F(E@vtZ-JqfgOVF&Sovy|L;O$vR+2#4puPNWN0-B;%oea% z0FI_L!i@X%5W!r8$k21JX1)&CRx1=_n_%&jn~L00dj!e`-txaPvJ_4nXyQZG?2|^A zJElzJBmS|>-@HuhmkU2`s^-g`{k<7xJzOf5lX6SX17QQT{0K7SyX1N>qhGaGT4CAD zN*5j}zhH-{gY)3jp?YA=RyefF0MqW#yWAH@8+hVJ?r@ZNjv3GNWEI-xh4;v`)n_8>|-+xsv>J~FZ53A->iSlG`*S;XfAKgC-KABS} z3Vj#su=*_>)cvq~{9!kCM{!#@e6lbWhA+9T=OeJP*Y^ zFAghluz@rG+=vSzd)+NFObE|(;GZ%mkH7BenJDP%O+TP#wQ!%iRDpjwDMq}`_x`fO zATp6Y((BIr2X|G9Wp^Z%IIxrdqxziVufGvl?of}kPUmwqHc-n>bt~{MHW@9PbKCTt z;y>~|9W;N_^V}{Rp0lD@I9p#awOC-<&}OK&>nUrethy}c&f^9^1=hx2SD*5 z@jv%qF5vxqzH_`o{&tqvBd_xH_?ug3&zT<;A56+GnO@C$mEj*ty3c;Z^M1wCckB3lFDg%ae-rxVLrs;L zzJgr5Bga3fe=cACg@+ttsm@?iQHRU_f1)z8XwHrfcU|Ae)wh4EJsvumX73Mj@s1q- zxL#R2zuJ8=IUPEX=kou*sLTh3I?k-N&e#zc580PRJWH#|0@LryaT)7!{FK*d;P`!1 zwQY7@IZc90|4%Nu+^QJ+$hDo3Zrcy!;qk*=yd!6W+>AzkPe`tAU**wnIOz8b&iok9 z?8``Rws_O-yHjrp=zKb7%mvlHCwu&~xf*`nX7D)QdZUxOvcyimV{vAu@31Zj4Ih>Qwp%FZ5XcnwJCEV~Z^8FDZ2ImyR*LnbddcrmO6^1YVdqZVaoFE+ zWwpmYPYwDP)-Bds>#A86#~g<-(}6&8OWQ^_4nc{-u|N-J)RAl5m(t+zUC!hI`EJMk zgzy|#7OR1x%PoB1i0=~evHs;KL#6Ep(>dxk93{ThWYuFz@Ag`0%|XvSssHI*i2tR2 zkL;ZV3!)1l^Vl7p8SBwvHAyIs1QVwkT~OyJloZ_esKqg2y_{__Z(Lp@zS9x-X`i3o zccg8sroN5q0cgPccA-o`2~pElFqc7wJ}5KkS&4f*CgkJJ9BJZ~#p-cyrqY7r#)5gx z9A`skbZMi_G2D&t1_U-sp_Jb3F9? z-2>qapN2sapN4k(l*eR3xwf>yL#l7P-qG|-TRke%u(omoDNRJr38@~xlOs|8FiO#1 T!}wIsXX6E1Ho%{Jw(#*kQdLm= diff --git a/src/assets/styles/_buttons.scss b/src/assets/styles/_buttons.scss deleted file mode 100644 index 59f568a0..00000000 --- a/src/assets/styles/_buttons.scss +++ /dev/null @@ -1,49 +0,0 @@ -::ng-deep .ngxePopover { - .btn { - display: inline-block; - font-weight: 400; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, - border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - - &.btn-sm { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; - } - - &:active, - &:focus { - outline: none; - box-shadow: none; - } - - &.btn-primary { - color: #fff; - background-color: #007bff; - border-color: #007bff; - - &:hover { - color: #fff; - background-color: #0069d9; - border-color: #0062cc; - } - } - - &:not(:disabled):not(.disabled) { - cursor: pointer; - } - } -} diff --git a/src/assets/styles/_forms.scss b/src/assets/styles/_forms.scss deleted file mode 100644 index 62c0dd08..00000000 --- a/src/assets/styles/_forms.scss +++ /dev/null @@ -1,53 +0,0 @@ -::ng-deep .ngxePopover { - form { - .form-group { - margin-bottom: 1rem; - - input { - overflow: visible; - } - - .form-control-sm { - width: 100%; - outline: none; - border: none; - border-bottom: solid 1px #bdbdbd; - border-radius: 0; - margin-bottom: 1px; - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - } - - &.row { - display: flex; - flex-wrap: wrap; - margin-left: 0; - margin-right: 0; - - .col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - padding: 0; - - &:first-child { - padding-right: 15px; - } - } - } - } - - .form-check { - position: relative; - display: block; - padding-left: 1.25rem; - - .form-check-input { - position: absolute; - margin-top: 0.3rem; - margin-left: -1.25rem; - } - } - } -} diff --git a/src/assets/styles/_popover.scss b/src/assets/styles/_popover.scss deleted file mode 100644 index 2ec545db..00000000 --- a/src/assets/styles/_popover.scss +++ /dev/null @@ -1,198 +0,0 @@ -::ng-deep .ngxePopover { - &.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", - "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - - .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.3rem; - - &::before, - &::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; - } - } - - .popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - color: inherit; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); - - &:empty { - display: none; - } - } - - .popover-body { - padding: 0.5rem 0.75rem; - color: #212529; - } - - &.bs-popover-top { - margin-bottom: 0.5rem; - - .arrow { - bottom: calc((0.5rem + 1px) * -1); - } - - .arrow::before, - .arrow::after { - border-width: 0.5rem 0.5rem 0; - } - - .arrow::before { - bottom: 0; - border-top-color: rgba(0, 0, 0, 0.25); - } - - .arrow::after { - bottom: 1px; - border-top-color: #fff; - } - } - - &.bs-popover-right { - margin-left: 0.5rem; - - .arrow { - left: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; - } - - .arrow::before, - .arrow::after { - border-width: 0.5rem 0.5rem 0.5rem 0; - } - - .arrow::before { - left: 0; - border-right-color: rgba(0, 0, 0, 0.25); - } - - .arrow::after { - left: 1px; - border-right-color: #fff; - } - } - - &.bs-popover-bottom { - margin-top: 0.5rem; - - .arrow { - left: 45% !important; - top: calc((0.5rem + 1px) * -1); - } - - .arrow::before, - .arrow::after { - border-width: 0 0.5rem 0.5rem 0.5rem; - } - - .arrow::before { - top: 0; - border-bottom-color: rgba(0, 0, 0, 0.25); - } - - .arrow::after { - top: 1px; - border-bottom-color: #fff; - } - - // This will remove the popover-header's border just below the arrow - .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7; - } - } - - &.bs-popover-left { - margin-right: 0.5rem; - - .arrow { - right: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; - } - - .arrow::before, - .arrow::after { - border-width: 0.5rem 0 0.5rem 0.5rem; - } - - .arrow::before { - right: 0; - border-left-color: rgba(0, 0, 0, 0.25); - } - - .arrow::after { - right: 1px; - border-left-color: #fff; - } - } - - &.bs-popover-auto { - &[x-placement^="top"] { - @extend .bs-popover-top; - } - - &[x-placement^="right"] { - @extend .bs-popover-right; - } - - &[x-placement^="bottom"] { - @extend .bs-popover-bottom; - } - - &[x-placement^="left"] { - @extend .bs-popover-left; - } - } - } -} diff --git a/src/karma.conf.js b/src/karma.conf.js new file mode 100644 index 00000000..81928a7f --- /dev/null +++ b/src/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/ngx-editor'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/src/app/ngx-editor/ngx-editor.component.html b/src/lib/ngx-editor.component.html similarity index 100% rename from src/app/ngx-editor/ngx-editor.component.html rename to src/lib/ngx-editor.component.html diff --git a/src/app/ngx-editor/ngx-editor.component.scss b/src/lib/ngx-editor.component.scss similarity index 100% rename from src/app/ngx-editor/ngx-editor.component.scss rename to src/lib/ngx-editor.component.scss diff --git a/src/app/ngx-editor/ngx-editor.component.spec.ts b/src/lib/ngx-editor.component.spec.ts similarity index 100% rename from src/app/ngx-editor/ngx-editor.component.spec.ts rename to src/lib/ngx-editor.component.spec.ts diff --git a/src/app/ngx-editor/ngx-editor.component.ts b/src/lib/ngx-editor.component.ts similarity index 100% rename from src/app/ngx-editor/ngx-editor.component.ts rename to src/lib/ngx-editor.component.ts diff --git a/src/app/ngx-editor/ngx-editor.module.ts b/src/lib/ngx-editor.module.ts similarity index 100% rename from src/app/ngx-editor/ngx-editor.module.ts rename to src/lib/ngx-editor.module.ts diff --git a/src/app/ngx-editor/plugins/menu/MenuBarView.ts b/src/lib/plugins/menu/MenuBarView.ts similarity index 100% rename from src/app/ngx-editor/plugins/menu/MenuBarView.ts rename to src/lib/plugins/menu/MenuBarView.ts diff --git a/src/app/ngx-editor/plugins/menu/constants.ts b/src/lib/plugins/menu/constants.ts similarity index 100% rename from src/app/ngx-editor/plugins/menu/constants.ts rename to src/lib/plugins/menu/constants.ts diff --git a/src/app/ngx-editor/plugins/menu/getMenu.ts b/src/lib/plugins/menu/getMenu.ts similarity index 100% rename from src/app/ngx-editor/plugins/menu/getMenu.ts rename to src/lib/plugins/menu/getMenu.ts diff --git a/src/app/ngx-editor/plugins/menu/index.ts b/src/lib/plugins/menu/index.ts similarity index 100% rename from src/app/ngx-editor/plugins/menu/index.ts rename to src/lib/plugins/menu/index.ts diff --git a/src/app/ngx-editor/plugins/menu/menu.ts b/src/lib/plugins/menu/menu.ts similarity index 100% rename from src/app/ngx-editor/plugins/menu/menu.ts rename to src/lib/plugins/menu/menu.ts diff --git a/src/app/ngx-editor/plugins/placeholder.ts b/src/lib/plugins/placeholder.ts similarity index 100% rename from src/app/ngx-editor/plugins/placeholder.ts rename to src/lib/plugins/placeholder.ts diff --git a/src/app/ngx-editor/types.ts b/src/lib/types.ts similarity index 100% rename from src/app/ngx-editor/types.ts rename to src/lib/types.ts diff --git a/src/app/ngx-editor/utils/computeOptions.ts b/src/lib/utils/computeOptions.ts similarity index 100% rename from src/app/ngx-editor/utils/computeOptions.ts rename to src/lib/utils/computeOptions.ts diff --git a/src/app/ngx-editor/utils/icons/bold.ts b/src/lib/utils/icons/bold.ts similarity index 100% rename from src/app/ngx-editor/utils/icons/bold.ts rename to src/lib/utils/icons/bold.ts diff --git a/src/app/ngx-editor/utils/icons/code.ts b/src/lib/utils/icons/code.ts similarity index 100% rename from src/app/ngx-editor/utils/icons/code.ts rename to src/lib/utils/icons/code.ts diff --git a/src/app/ngx-editor/utils/icons/index.ts b/src/lib/utils/icons/index.ts similarity index 100% rename from src/app/ngx-editor/utils/icons/index.ts rename to src/lib/utils/icons/index.ts diff --git a/src/app/ngx-editor/utils/icons/italic.ts b/src/lib/utils/icons/italic.ts similarity index 100% rename from src/app/ngx-editor/utils/icons/italic.ts rename to src/lib/utils/icons/italic.ts diff --git a/src/app/ngx-editor/utils/plugins.ts b/src/lib/utils/plugins.ts similarity index 100% rename from src/app/ngx-editor/utils/plugins.ts rename to src/lib/utils/plugins.ts diff --git a/ng-package.json b/src/ng-package.json similarity index 76% rename from ng-package.json rename to src/ng-package.json index 14c8d826..19c5d93f 100644 --- a/ng-package.json +++ b/src/ng-package.json @@ -1,8 +1,8 @@ { - "$schema": "./node_modules/ng-packagr/ng-package.schema.json", - "dest": "./build/", + "$schema": "../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../dist/ngx-editor", "lib": { - "entryFile": "./public_api.ts", + "entryFile": "./public-api.ts", "umdModuleIds": { "prosemirror-state": "prosemirrorState", "prosemirror-view": "prosemirrorView", diff --git a/src/package.json b/src/package.json new file mode 100644 index 00000000..45fea20a --- /dev/null +++ b/src/package.json @@ -0,0 +1,31 @@ +{ + "name": "ngx-editor", + "version": "5.0.0-alpha", + "description": "WYSIWYG Editor for Angular Applications", + "license": "MIT", + "repository": "https://github.com/sibiraj-s/ngx-editor.git", + "bugs": "https://github.com/sibiraj-s/ngx-editor/issues", + "homepage": "https://github.com/sibiraj-s/ngx-editor", + "keywords": [ + "angular-editor", + "angular-wysiwyg-editor", + "wysiwyg-editor", + "ngx-editor", + "prosemirror" + ], + "peerDependencies": { + "@angular/common": "^9.0.0", + "@angular/core": "^9.0.0", + "@angular/forms": "^9.0.0", + "prosemirror-commands": "^1.1.0", + "prosemirror-history": "^1.1.0", + "prosemirror-keymap": "^1.1.0", + "prosemirror-schema-basic": "^1.1.0", + "prosemirror-state": "^1.3.0", + "prosemirror-view": "^1.14.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "classnames": "^2.2.6" + } +} diff --git a/src/public-api.ts b/src/public-api.ts new file mode 100644 index 00000000..46b6038c --- /dev/null +++ b/src/public-api.ts @@ -0,0 +1,6 @@ +/* + * Public API Surface of ngx-editor + */ + +export * from './lib/ngx-editor.component'; +export * from './lib/ngx-editor.module'; diff --git a/src/test.ts b/src/test.ts index 50193eb0..303b32a2 100644 --- a/src/test.ts +++ b/src/test.ts @@ -1,5 +1,6 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files +import 'zone.js/dist/zone'; import 'zone.js/dist/zone-testing'; import { getTestBed } from '@angular/core/testing'; import { diff --git a/src/tsconfig.lib.json b/src/tsconfig.lib.json new file mode 100644 index 00000000..ce8091c2 --- /dev/null +++ b/src/tsconfig.lib.json @@ -0,0 +1,23 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.lib.prod.json b/src/tsconfig.lib.prod.json new file mode 100644 index 00000000..cbae7942 --- /dev/null +++ b/src/tsconfig.lib.prod.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.lib.json", + "angularCompilerOptions": { + "enableIvy": false + } +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 00000000..c1645db5 --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/tslint.json b/src/tslint.json new file mode 100644 index 00000000..60402b17 --- /dev/null +++ b/src/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "", + "camelCase" + ], + "component-selector": [ + true, + "element", + "", + "kebab-case" + ] + } +} diff --git a/tsconfig.json b/tsconfig.json index 8c4ef3bb..1947d33a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,13 @@ "lib": [ "es2018", "dom" - ] + ], + "paths": { + "ngx-editor": [ + "dist/ngx-editor/ngx-editor", + "dist/ngx-editor" + ] + } }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, diff --git a/tslint.json b/tslint.json index b3edbede..def88d1c 100644 --- a/tslint.json +++ b/tslint.json @@ -1,5 +1,8 @@ { "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], "rules": { "align": { "options": [ @@ -13,21 +16,6 @@ "deprecation": { "severity": "warning" }, - "component-class-suffix": true, - "contextual-lifecycle": true, - "directive-class-suffix": true, - "directive-selector": [ - true, - "attribute", - "", - "camelCase" - ], - "component-selector": [ - true, - "element", - "", - "kebab-case" - ], "eofline": true, "import-blacklist": [ true, @@ -129,6 +117,9 @@ "check-typecast" ] }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, "no-conflicting-lifecycle": true, "no-host-metadata-property": true, "no-input-rename": true, @@ -141,8 +132,5 @@ "template-no-negated-async": true, "use-lifecycle-interface": true, "use-pipe-transform-interface": true - }, - "rulesDirectory": [ - "codelyzer" - ] + } } diff --git a/extras/docs/colors.md b/wiki/docs/colors.md similarity index 100% rename from extras/docs/colors.md rename to wiki/docs/colors.md diff --git a/extras/docs/configuartion.md b/wiki/docs/configuartion.md similarity index 100% rename from extras/docs/configuartion.md rename to wiki/docs/configuartion.md diff --git a/extras/docs/errors.md b/wiki/docs/errors.md similarity index 100% rename from extras/docs/errors.md rename to wiki/docs/errors.md diff --git a/extras/docs/font-size.md b/wiki/docs/font-size.md similarity index 100% rename from extras/docs/font-size.md rename to wiki/docs/font-size.md diff --git a/extras/docs/image-uploader.md b/wiki/docs/image-uploader.md similarity index 100% rename from extras/docs/image-uploader.md rename to wiki/docs/image-uploader.md diff --git a/extras/docs/prerequisites.md b/wiki/docs/prerequisites.md similarity index 100% rename from extras/docs/prerequisites.md rename to wiki/docs/prerequisites.md diff --git a/extras/docs/resizer.md b/wiki/docs/resizer.md similarity index 100% rename from extras/docs/resizer.md rename to wiki/docs/resizer.md diff --git a/extras/docs/toolbar.md b/wiki/docs/toolbar.md similarity index 100% rename from extras/docs/toolbar.md rename to wiki/docs/toolbar.md diff --git a/extras/docs/video.md b/wiki/docs/video.md similarity index 100% rename from extras/docs/video.md rename to wiki/docs/video.md diff --git a/extras/summary.json b/wiki/summary.json similarity index 100% rename from extras/summary.json rename to wiki/summary.json