diff --git a/.bowerrc b/.bowerrc
new file mode 100644
index 00000000..44491d3d
--- /dev/null
+++ b/.bowerrc
@@ -0,0 +1,3 @@
+{
+ "directory": "bower_components"
+}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5eb145c8..32809723 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -37,7 +37,7 @@ chances of your issue being dealt with quickly:
* **Motivation for or Use Case** - explain why this is a bug for you
* **Angular Version(s)** - is it a regression?
* **Browsers and Operating System** - is this a problem with all browsers or only IE8?
-* **Reproduce the error** - provide a live example ([Plunkr](http://plnkr.co/edit/tpl:iwVyu2?p=preview)) or a unambiguous set of steps.
+* **Reproduce the error** - provide a live example ([Plunkr](http://plnkr.co/edit/tpl:RaBEszV5xrAZ0VRoZ7PM?p=preview)) or a unambiguous set of steps.
* **Related issues** - has a similar issue been reported before?
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
causing the problem (line of code or commit)
diff --git a/Gruntfile.js b/Gruntfile.js
index cb0672e4..e44f130a 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,99 +1,239 @@
module.exports = function (grunt) {
-
+
// load all grunt tasks
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-istanbul-coverage');
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-karma-coveralls');
grunt.loadNpmTasks('grunt-conventional-changelog');
-
- grunt.registerTask('compile', ['concat', 'uglify']);
+ grunt.loadNpmTasks('grunt-bump');
+ grunt.loadNpmTasks('grunt-git');
+ grunt.loadNpmTasks('grunt-shell');
+ grunt.loadNpmTasks('grunt-umd');
+
+ grunt.registerTask('compile', ['concat', 'umd', 'copy:setupFiles', 'jshint', 'uglify']);
grunt.registerTask('default', ['compile', 'test']);
- grunt.registerTask('test', ['clean', 'jshint', 'karma', 'coverage']);
- grunt.registerTask('travis-test', ['jshint', 'karma', 'coverage', 'coveralls']);
+ grunt.registerTask('test', ['clean:coverage', 'jshint', 'karma', 'coverage']);
+ grunt.registerTask('travis-test', ['concat', 'umd', 'copy:setupFiles', 'jshint', 'karma', 'coverage', 'coveralls']);
+
+ grunt.registerTask('release', ['bump-only', 'setVersion', 'compile', 'demo_pages', 'conventionalChangelog', 'shell:changelog', 'gitcommit','bump-commit', 'shell:publish']);
+ grunt.registerTask('release:patch', ['bump-only:patch','setVersion','compile','demo_pages','conventionalChangelog','shell:changelog','gitcommit','bump-commit', 'shell:publish']);
+ grunt.registerTask('release:minor', ['bump-only:minor','setVersion','compile','demo_pages','conventionalChangelog','shell:changelog','gitcommit','bump-commit', 'shell:publish']);
+ grunt.registerTask('release:major', ['bump-only:major','setVersion','compile','demo_pages','conventionalChangelog','shell:changelog','gitcommit','bump-commit', 'shell:publish']);
+ grunt.registerTask('release:prerelease', ['bump-only:prerelease','setVersion','demo_pages','compile','conventionalChangelog','shell:changelog','gitcommit','bump-commit', 'shell:publish']);
+ grunt.registerTask('setVersion', function () {
+ var pkgJson = require('./package.json');
+ var version = pkgJson.version;
+ //grunt.log.writeln('textAngular version:'+version);
+ var contents = grunt.file.read('./src/globals.js');
+ contents = contents.replace(/textAngularVersion = 'v\d+.\d+.\d+(-\d)?'/i, "textAngularVersion = 'v"+version+"'");
+ grunt.file.write('./src/globals.js', contents);
+ console.log('Updated src/globals.js to textAngular version: v'+version);
+ });
+
var testConfig = function (configFile, customOptions) {
var options = { configFile: configFile, keepalive: true };
var travisOptions = process.env.TRAVIS && { browsers: ['PhantomJS'], reporters: ['dots','coverage'] };
return grunt.util._.extend(options, customOptions, travisOptions);
};
-
+
+ grunt.registerMultiTask('demo_pages', 'Compile demo pages', function(){
+ var d = this.data;
+ var srcPath = function(fname){ return d.cwd + fname; };
+ var destPath = function(fname){ return d.dest + fname; };
+
+ grunt.file.expand({cwd: d.cwd}, d.src).forEach(function(each){
+ grunt.file.copy(srcPath(each), destPath(each), {
+ process: function (contents, path){
+ return grunt.template.process(contents, {
+ data: {
+ js: Object.keys(grunt.config('uglify.my_target.files')),
+ version: grunt.config('pkg.version')
+ }
+ });
+ }
+ });
+ });
+ });
+
// Project configuration.
grunt.initConfig({
- changelog: {options: {dest: 'changelog.md'}},
- clean: ["coverage"],
- coverage: {
- options: {
- thresholds: {
- 'statements': 100,
- 'branches': 100,
- 'lines': 100,
- 'functions': 100
+ pkg: grunt.file.readJSON('package.json'),
+ // grunt-spawn
+ spawn_changelog: {
+ command: 'pico',
+ pattern: 'changelog.md',
+ commandArgs: ['{0}'],
+ opts: {
+ stdio: 'inherit'
+ }
+ },
+ conventionalChangelog: {
+ options: {
+ changelogOpts: {
+ // conventional-changelog options go here
+ preset: 'angular'
+ },
+ context: {
+ // context goes here
+ },
+ gitRawCommitsOpts: {
+ // git-raw-commits options go here
+ },
+ parserOpts: {
+ // conventional-commits-parser options go here
+ },
+ writerOpts: {
+ // conventional-changelog-writer options go here
+ }
+ },
+ release: {
+ src: 'changelog.md'
},
+ },
+ bump: {
+ options: {
+ files: ['package.json','bower.json'],
+ commitFiles: ['package.json', 'changelog.md','bower.json'],
+ pushTo: 'origin',
+ updateConfigs: ['pkg']
+ }
+ },
+ gitcommit: {
+ release: {
+ options: {
+ message: "chore(release): Build Dist files"
+ },
+ files: {
+ src: ['src/*', 'demo/*', 'src/demo/*','dist/*']
+ }
+ }
+ },
+ shell: {
+ publish: {
+ command: "npm publish"
+ },
+ changelog: {
+ options: {
+ stdinRawMode: true
+ },
+ command: 'pico changelog.md',
+ }
+ },
+ clean: {
+ coverage: ["coverage"],
+ dist: ["dist"],
+ },
+ coverage: {
+ options: {
+ thresholds: {
+ 'statements': 100,
+ 'branches': 100,
+ 'lines': 100,
+ 'functions': 100
+ },
dir: 'coverage'
- }
+ }
},
coveralls: {
options: {
debug: true,
- coverage_dir: 'coverage',
- force: true
+ coverageDir: 'coverage',
+ force: true,
}
},
karma: {
- jquery: {
- options: testConfig('karma-jquery.conf.js')
- },
- jqlite: {
- options: testConfig('karma-jqlite.conf.js')
- }
+ jquery: {
+ options: testConfig('karma-jquery.conf.js')
+ },
+ jqlite: {
+ options: testConfig('karma-jqlite.conf.js')
+ }
},
jshint: {
- files: ['lib/*.js', 'src/textAngular.js', 'src/textAngularSetup.js', 'test/*.spec.js', 'test/taBind/*.spec.js'],// don't hint the textAngularSanitize as they will fail
- options: {
- eqeqeq: true,
- immed: true,
- latedef: true,
- newcap: true,
- noarg: true,
- sub: true,
- boss: true,
- eqnull: true,
- globals: {}
- }
+ files: ['src/*.js', 'test/*.spec.js', 'test/taBind/*.spec.js', '!src/textAngular-sanitize.js'],// don't hint the textAngularSanitize as they will fail
+ options: {
+ eqeqeq: true,
+ immed: true,
+ latedef: true,
+ newcap: true,
+ noarg: true,
+ sub: true,
+ boss: true,
+ eqnull: true,
+ globals: {}
+ }
+ },
+ copy: {
+ setupFiles: {
+ expand: true,
+ cwd: 'src/',
+ src: ['textAngularSetup.js', 'textAngular.css', 'textAngular-sanitize.js'],
+ dest: 'dist/'
+ }
},
concat: {
- options: {
- banner: "/*\n@license textAngular\nAuthor : Austin Anderson\nLicense : 2013 MIT\nVersion 1.3.0-pre14\n\nSee README.md or https://github.com/fraywing/textAngular/wiki for requirements and use.\n*/\n\n(function(){ // encapsulate all variables so they don't become global vars\n\"Use Strict\";",
- footer: "})();"
- },
dist: {
- src: ['lib/globals.js','lib/factories.js','lib/DOM.js','lib/validators.js','lib/taBind.js','lib/main.js'],
- dest: 'src/textAngular.js'
+ options: {
+ banner: "/*\n@license textAngular\nAuthor : Austin Anderson\nLicense : 2013 MIT\nVersion <%- pkg.version %>\n\nSee README.md or https://github.com/fraywing/textAngular/wiki for requirements and use.\n*/\n\n/*\nCommonjs package manager support (eg componentjs).\n*/\n\n\n\"use strict\";"
+ },
+ files:{
+ 'dist/textAngular.js': ['src/globals.js','src/factories.js','src/DOM.js','src/validators.js','src/taBind.js','src/main.js'],
+ }
+ },
+ umd: {
+ files: {
+ 'dist/textAngular.umd.js': ['dist/textAngularSetup.js', 'dist/textAngular.js']
+ }
+ }
+ },
+ umd: {
+ all: {
+ options: {
+ src: 'dist/textAngular.umd.js',
+ dest: 'dist/textAngular.umd.js',
+ objectToExport: 'textAngular.name',
+ globalAlias: 'textAngular',
+ amdModuleId: 'textAngular',
+ deps: {
+ 'default': ['rangy'],
+ cjs: ['rangy', {'rangy/lib/rangy-selectionsaverestore': ''}],
+ amd: ['rangy', {'rangy/lib/rangy-selectionsaverestore': ''}]
+ }
+ }
}
},
uglify: {
options: {
mangle: true,
- compress: true,
- wrap: true,
+ compress: {},
+ wrap: false,
preserveComments: 'some'
},
my_target: {
files: {
'dist/textAngular-rangy.min.js': ['bower_components/rangy/rangy-core.js', 'bower_components/rangy/rangy-selectionsaverestore.js'],
- 'dist/textAngular.min.js': ['src/textAngularSetup.js','src/textAngular.js'],
- 'dist/textAngular-sanitize.min.js': ['src/textAngular-sanitize.js']
+ 'dist/textAngular-sanitize.min.js': ['src/textAngular-sanitize.js'],
+ 'dist/textAngular.min.js': ['dist/textAngular.umd.js']
}
}
},
+ demo_pages: {
+ main: {
+ cwd: 'src/demo/',
+ src: '*.html',
+ dest: 'demo/'
+ }
+ },
watch: {
- files: "lib/*.js",
- tasks: "concat"
+ files: "src/*.js",
+ tasks: "compile"
}
});
-};
\ No newline at end of file
+};
diff --git a/README.md b/README.md
index 11f8c1ba..21fa1485 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,25 @@
-textAngular v1.3.0-pre14
+textAngular v1.5.16
===========
[](https://travis-ci.org/fraywing/textAngular) [](https://coveralls.io/r/fraywing/textAngular)
-Demo is available at: http://www.textangular.com (Or editable [Plunkr Demo](http://plnkr.co/edit/tpl:iwVyu2?p=preview))
+Demo is available at: http://www.textangular.com (Or editable [Plunkr Demo](http://plnkr.co/edit/hz3x2f?p=preview))
-#### This readme is for the v1.3.x release, if you are looking for the v1.2.2 readme go here: https://github.com/fraywing/textAngular/tree/v1.2.2
+#### Upgrading From 1.2.2 or earlier
-## Requirements
+To upgrade from version 1.2.2 or earlier you need to follow these steps:
-1. `AngularJS` ≥ `1.2.x`
-2. `Rangy` ≥ `1.2.x`, Both rangy-core and rangy-saveselection are required. (There is a minified combination of these two included in the dist folder)
+1. The styling for textAngular is now in the `dist/textAngular.css` file, you will need to include this or a copy of it with your own modifications.
+2. The rangy library is now required, you will need both the `rangy-core` and `rangy-selectionsaverestore` modules, alternatively you can include the compressed version (`textAngular-rangy.min.js`) in the dist folder
-### Optional Recommended requirements
+## Requirements
-1. [Bootstrap 3.x](http://getbootstrap.com/) for the default styles
-2. [Font-Awesome 4.x](http://fortawesome.github.io/Font-Awesome/) for the default icons on the toolbar
+1. `AngularJS` ≥ `1.3.x`
+2. `Rangy` ≥ `1.3.x`, Both rangy-core and rangy-selectionsaverestore are required. (There is a minified combination of these two included in the dist folder)
+3. `Font-Awesome` ≥ `4.x` for the default icons on the toolbar
+1. `Bootstrap` ≥ `3.x` for the default styles (Can use `bootstrap-css-only`, you must add this to your bower or include this manually)
+5. NOTE: please check the requirements for earlier releases, if these are an issue.
### Where to get it
@@ -27,32 +30,59 @@ Demo is available at: http://www.textangular.com (Or editable [Plunkr Demo](http
Run `bower install textAngular` from the command line.
Include script tags similar to the following:
```html
-
+
```
+**Via NPM:**
+
+Run `npm install textangular` from the command line.
+Include script tags similar to the following:
+```html
+
+
+
+
+```
+Install using commonjs (eg componentjs, Webpack, Browserify):
+```
+angular.module('myModule', [require('angular-sanitize'), require('textAngular')]);
+```
+Optionally, install textAngular-sanitize.min.js by requiring it BEFORE requring textAngular:
+```
+require('textangular/dist/textAngular-sanitize.min');
+angular.module('myModule', [require('textAngular')]);
+```
+For CSS support with Webpack, install the style-loader, css-loader (and postcss-loader) and configure the loader in your webpack.config.js similar to the following:
+```
+loaders: [
+ {test: /\.css$/, loader: 'style!css!postcss'}
+]
+```
+
**Via CDNJS:**
Include script tags similar to the following:
```html
-
-
+
+
+
```
**Via jsDelivr:**
Include script tag similar to the following: (For details on how this works see: [https://github.com/jsdelivr/jsdelivr#load-multiple-files-with-single-http-request](https://github.com/jsdelivr/jsdelivr#load-multiple-files-with-single-http-request))
```html
-
+
```
**Via Github**
Download the code from [https://github.com/fraywing/textAngular/releases/latest](https://github.com/fraywing/textAngular/releases/latest), unzip the files then add script tags similar to the following:
```html
-
+
@@ -60,7 +90,7 @@ Download the code from [https://github.com/fraywing/textAngular/releases/latest]
### Usage
-1. Include (`rangy-core.js` and `rangy-saveselection.js`) or `textAngular-rangy.min.js` in your project using script tags
+1. Include (`rangy-core.js` and `rangy-selectionsaverestore.js`) or `textAngular-rangy.min.js` in your project using script tags
2. Include `textAngular-sanitize.js` or `textAngular-sanitize.min.js` in your project using script tags
3. Include (`textAngularSetup.js` and `textAngular.js`) or `textAngular.min.js` (textAngularSetup.js is included inside textAngular.min.js)
4. Add a dependency to `textAngular` in your app module, for example: ```angular.module('myModule', ['textAngular'])```.
@@ -75,29 +105,50 @@ OR
This acts similar to a regular AngularJS / form input if you give it a name attribute, allowing for form submission and AngularJS form validation.
Have fun!
-
+
**Important Note:** Though textAngular supports the use of all attributes in it's input, please note that angulars ng-bind-html **WILL** strip out all of your style attributes if you are using `angular-sanitize.js`.
For Additional options see the [github Wiki](https://github.com/fraywing/textAngular/wiki).
### Issues?
-textAngular uses ```execCommand``` for the rich-text functionality.
+textAngular uses ```execCommand``` for the rich-text functionality.
That being said, its still a fairly experimental browser feature-set, and may not behave the same in all browsers - see http://tifftiff.de/contenteditable/compliance_test.html for a full compliance list.
It has been tested to work on Chrome, Safari, Opera, Firefox and Internet Explorer 8+.
-If you find something, please let me know - throw me a message, or submit a issue request!
+If you find something, please let me know - throw me a message, or submit an issue request!
### FAQ
+1. **Toolbar shows up with some being blank instead of icons**
+You need to include font-awesome on your page or nothing will show up.
1. **Youtube Insert embeds a `````` tag and aren't showing the video.**
The problems with iFrames are that they are a security risk so the sanitizer by default strips them out. Instead of changing the sanitizer to allow iFrames we use a placeholder for youtube videos which has the added advantage of allowing you to edit their size and placement in the editor. To display the youtube videos when you aren't in the editor use the following html: ```
([581e050](https://github.com/fraywing/textAngular/commit/581e050))
+* **DOM, taBind, taBind.spec:** added test for ShiftKey being pressed and released ([1b94314](https://github.com/fraywing/textAngular/commit/1b94314))
+* **globals, taBind:** small code clean up and re-org ([19cfe7e](https://github.com/fraywing/textAngular/commit/19cfe7e))
+* **main:** fix for [#655](https://github.com/fraywing/textAngular/issues/655) activeState seemingly not firing after the first click after a highlight [#655](https://github.com/fraywing/textAngular/issues/655) ([6ecc1c1](https://github.com/fraywing/textAngular/commit/6ecc1c1))
+* **main:** fixed an invalid error in rare conditions ([8772907](https://github.com/fraywing/textAngular/commit/8772907))
+* **taBind:** Browser spelling correction not setting the control to dirty [#1120](https://github.com/fraywing/textAngular/issues/1120) ([5473d01](https://github.com/fraywing/textAngular/commit/5473d01))
+* **taBind:** corrected issue #607 - catching Ctrl+Return ([438e060](https://github.com/fraywing/textAngular/commit/438e060))
+* **DOM, globals, main, taBind:** Fix for #1205 Duplicating content in ... (https://github.com/fraywing/textAngular/commit/581e050a3ed5bb4f21d59e4a59856f1d4a859770)
+
+
+
+## [1.5.9](https://github.com/fraywing/textAngular/compare/v1.5.8...v1.5.9) (2016-09-05)
+
+
+### Bug Fixes
+
+* **factories.js:** removed the extra > and ([76a31e2](https://github.com/fraywing/textAngular/commit/76a31e2))
+* **main:** We now properly update the toolbar when we tab into the editor. ([d930538](https://github.com/fraywing/textAngular/commit/d930538))
+* **DOM, textAngularSetup, taExecCommand.formatBlock.spec, taTools.spec)
+ - removed a rare element.parentNode === null condition
+ - fixed a rare bug during 'CLEAR' formatic where we could see a rangy error
+ 'The given range isn't in document'
+ - enhanced the 'CLEAR' format function to properly handle nested
statements
+
+#### Features
+ * Enhancment: - the build proces is improved and we are now uptodate with the
+ packages in use. Only grunt-istanbul-coverage is behind because
+ it currently breaks the build.
+ - Updated the grunt-conventional-changelog to the current package.
+ and added an editing step for the changelog.md as part of the
+ build process.
+
+#### Breaking Changes (BUILD ONLY)
+ * Because of the update of the packages used in the build process, you must
+ do a 'npm install' before you can build.
+
+
+
+
+### 1.5.8 (2016-08-31)
+
+
+#### Bug Fixes
+
+* **textAngular:**
+ * Fixed several issues around Italic, Bold, Strikethrough, Underline state in the ([7823937b](https://github.com/fraywing/textAngular/commit/7823937b))
+ * fix(DOM, textAngularSetup): Functionality under Firefox is now much improved.
+ * Build Enhancement: updated many of the development packages. There is more work to do, but some improvement.
+ * Fix(main): removed the saveFocusSelection() and restoreFocusSelection()
+ which to do function properly and create problems!
+
+#### Features
+ * Enhancment: - 'insertLink' now allows editing of existing link
+
+
+
+### 1.5.7 (2016-08-23)
+
+
+
+### 1.5.6 (2016-08-23)
+
+
+#### Bug Fixes
+
+* **textAngular:**
+ * Fix(main, textAngularManager.spec): Corrected issues with toolbar being active all all editors with same toolbar.
+ Now toolbarScopes are tied to each editor which is cleaner and makes more sense.
+ AND the toolbarScopes are deleted when the editor is deleted which is better and
+ no longer tied to the toolbar.
+ We also added some code to enable $log messages in the karma testing when necessary
+ See the textAngularManager.spec.js file for details looking at 'var $log', beforeEach() and afterEach()
+ (https://github.com/fraywing/textAngular/commit/daec3e8769f187be3e9f9f5a3c4ac33241f3e492)
+ * Fix(taFixChrome.spec): added a test to verify the fix form #1281 (https://github.com/fraywing/textAngular/commit/cd45b29a9fddeffaab5bae267572a59b04bd0370)
+ * Fix(main): We now respect he selection and enhanced wrapSelection (https://github.com/fraywing/textAngular/commit/13379176e7b732bf8b83aee9fe0fa5104dcf3473)
+ * FIx(Gruntfile): Added the missing task demo_pages to all release paths
+ * Chore(README): Update to new pluker link
+
+* **factories:**
+ * Only append remainder if the Apple-converted-space has matched ([e086974c](https://github.com/fraywing/textAngular/commit/e086974c))
+ * Add remainder of html string to finalHtml ([950ed2d8](https://github.com/fraywing/textAngular/commit/950ed2d8))
+
+
+
+
+### 1.5.6-0 (2016-08-17)
+
+* **textAngular:**
+ * Enhancement(demo, static-demo, textAngular.com) Added version display to demo code
+ (https://github.com/fraywing/textAngular/commit/3c3ce76c3805d67e49c980c5bf1da15f52a24781)
+ * Enhancement(main, globals, Gruntfile, textAngularManger.spec, textAngular.spec):
+ Added a new directive text-angular-version and a new function to textAngularManger:getVersion()
+ I have wanted to add this for a long time to make it easier to display the version of textAngular being used.
+ (https://github.com/fraywing/textAngular/commit/1ffa6f7263ce844a4e300226616a9d2282143f56)
+ This also modifies the build process to automatically put the version into globals.js
+
+
+### 1.5.5 (2016-08-15)
+
+* **textAnglar:**
+ * Fix(DOM, globals, main, taBind, textAngular.spec): Resoved the issues around the improvements from v1.5.4
+ The bulk of the changes can be seen here: https://github.com/fraywing/textAngular/commit/c39f20d9cf2372f94b579d018b0cb9bb553e33ef
+
+
+
+### 1.5.4 (2016-08-06)
+
+* **textAnglar:**
+ * Fix(DOM, globals, textAngular.spec): Corrected bugs around Firefox weirdness (https://github.com/fraywing/textAngular/commit/32aad73a258696ae06d2ee6cc901bd571d7793fb)
+ - DOM: major fix to handle Firefox weirdness around insertions
+ We now insert zero width spaces in place of that is
+ a '' character.
+ This corrects taExecCommand() to function properly on Firefox.
+ - globals: stripHtmlToText() now handles zero width spaces
+ - textAngular.spec: added test for zero width spaces
+ * Enhancement(added Support for font-style = italic and font-size = [size em/px/%] in sanitize function validStyles, (https://github.com/fraywing/textAngular/commit/dde3d7f621c7d4403577853374223abe5c9d15db)
+ Merge pull request #964 from rdkleine/master
+ * Fix(main, taBind, textAngularSetup, globals, taTools.spec): Immproved the issues
+ with html and model getting out of sync (https://github.com/fraywing/textAngular/commit/5453c6b8fd2d72c6bdfb1dd83cb9fc0ed6df0a88)
+ Also corrected issue under Firefox where the initial selection was before all the content
+ - globals: improved stripHtmlToText() slightly
+ - main: fixed a mistyped if in switchView()
+ - taBind: small formatting changes for clarity
+ improved element.on('keyup') code
+ element.on('focus') now detets an bad selection condition under Firefox and fixes this
+ - textAngularSetup: added a coverage comment in recursiveRemoveClass() that is now needed
+ because of changes to taTools.spec
+ - taTools.spec: Changed the test set 'test clear button' so that now the whole
+ htmlcontent is now never selected. This was an issue beacuse when
+ all the htmlcontent was selected this triggered the element.on('focus') fix
+ for Firefox and broke the tests here. All the tests now run properly.
+ The biggest change was to now wrap the test content in a
+ which caused the expected values to change.
+ * Fix(main, globals): Corrected issue with clobering the html from the model too easily. (https://github.com/fraywing/textAngular/commit/b1206a892bc104cb63a74633395d00c0d6ee39ed)
+ Added getDomFromHtml() and corrected when this is used.
+ * Fix(main): Corrected issues with html and model getting out of synch! (https://github.com/fraywing/textAngular/commit/91fe5bfb7fd17d345f2cdaace9c3f891a6ce2fbc)
+ * Fix(taBind, textAngular.spec): Major change to _taBlankTest() that now uses the DOM to check the visibility of the html
+ This removes the MANY headaches of the old code... that that very fragile.
+ - added a new tool to measure performace where needed
+ - added a global stripHtmlToText() function
+ - added a new test to verify the performance tool and new stripHtmlToText() function
+ (https://github.com/fraywing/textAngular/commit/31cf9c4d307a02aa9f078daceea9bd38a7d70c3a)
+
+
+
+### 1.5.3 (2016-07-29)
+
+#### Bug Fixes
+
+* **textAngular:**
+ * Fix(textAngularManager): Corrected bug #1231 Leaking memory scopes (https://github.com/fraywing/textAngular/commit/a0024a24a3ca0c40a3cd0ffed0edbc475f2a91ff)
+ * Feat(textAngularManager): Added a function updateStyles() to force all the updateSelectedStyles() to be updated.
+ This also now automatically sets up the initialization for tools in most cases. (https://github.com/fraywing/textAngular/commit/d373fe10e770bf521641975cbc6a4f480d0a1f9e)
+ * Fix(main): Very small tweak in setupTriggerUpdateStyles() to accept the default $interval call that invokes a
+ $apply which will be more robust. (https://github.com/fraywing/textAngular/commit/0d860d0a97c440b868639bfb3ea9f3f943658da6)
+ * Enhancement(main): Show switch HTML button all the time. Originally from ershwetabansal (https://github.com/fraywing/textAngular/commit/db1f5a0bb50019c56ff8863c8a42fdbef2ce53ab)
+ * Fix(textAngularSetup): We now block javascript for 'insertLink', 'insertVideo', and 'insertImage' issue: #1189 (https://github.com/fraywing/textAngular/commit/37e3f7acdb7099d825480b45cb55da7c756a0ae7)
+ * Fix(taBind): corrected issue around Model becomes empty after edit Issue: #1230 (https://github.com/fraywing/textAngular/commit/17b4497ec3bd3939571724e4c9aad145d51e776c)
+
+
+
+### 1.5.2 (2016-07-15)
+
+#### Bug Fixes
+
+* **textAngular:**
+ * Fix(textAngularSetup): Corrected bug #1201 due to an issue with Firefox. (https://github.com/fraywing/textAngular/commit/dab42a371f03a6912de9b6310db5911b52cd8362)
+ * docs(README): fix textAngular-santize.min.js typo (https://github.com/fraywing/textAngular/commit/12580ad5585611257c5a0888186fe24e57c4d862)
+ * docs(README): update links to cdnjs and jsdelivr (https://github.com/fraywing/textAngular/commit/0ef205254360790ed45ab225171cc448d4730515)
+ * Fix(DOM): merged fix from Hike-zzz: fixing issue #616 #1174 (https://github.com/fraywing/textAngular/commit/328cd69c06c5d13c2c7a9c4cfeb9406334295137)
+ * Fix(README): fix typos- pull request #1072 from pra85/patch-2 (https://github.com/fraywing/textAngular/commit/0f7f2e4ce9c4a12a5c20c8f930fc8cee38d9287b)
+ * Fix(taBind): fix for bug under Firefox when delete all content #1217 (https://github.com/fraywing/textAngular/commit/67e7ebe1003f439fa6a93c0f70cbb1818926522b)
+ * Fix(textAngularSetup): bug #1223 InsertImage tool failed on Firefox (https://github.com/fraywing/textAngular/commit/f5e9bd4c5de55979572075cf4934b50201eb7a3e)
+ * Fix(globals, taBind): browser previos fix no more needed (https://github.com/fraywing/textAngular/commit/8cd3e5a64a798adfda17fb1e9a3a91930f96e5e2)
+
+#### Features
+
+* **textAngular** Enhanced (factories): to do Better removal of style junk which Chome inserts. Also one bug fix in the old existing code (a missing /"). (https://github.com/fraywing/textAngular/commit/7d5d37cfa03cc75e012885920ea4939460020658)
+
+
+### 1.5.1 (2016-04-25)
+
+
+
+## 1.5.0 (2016-01-16)
+
+
+#### Bug Fixes
+
+* **main.js:**
+ * we now hide the popover at the end of the image resize. ([c182c96c](https://github.com/fraywing/textAngular/commit/c182c96c))
+ * we now hide the popover at the end of the image resize. ([d9cfcf15](https://github.com/fraywing/textAngular/commit/d9cfcf15))
+ * Fix for #862 where the model was not changing after image resize. ([d5a508e3](https://github.com/fraywing/textAngular/commit/d5a508e3))
+* **taBind.js:** Fix bug #843 -- improper closing of list elements ([a0b79276](https://github.com/fraywing/textAngular/commit/a0b79276))
+* **textAngular-santitize:** Fix for internal model ignores style attr #854 ([9fc7288b](https://github.com/fraywing/textAngular/commit/9fc7288b))
+
+
+
+### 1.4.6 (2015-09-20)
+
+
+#### Bug Fixes
+
+* **textAngular:**
+ * Fix(textAngular): several bug fixes related to pasting from word. Closes #644, #617 ([f7d34a33](https://github.com/fraywing/textAngular/commit/f7d34a33658d7f336c2891cf9618ba34956c5bad))
+ * Fix(textAngular): several bug fixes related to pasting from word. Closes #644, #617 ([f7d34a33](https://github.com/fraywing/textAngular/commit/f7d34a33658d7f336c2891cf9618ba34956c5bad))
+ * Fix(npm): bad package for 1.4.5 is updated to current version. Closes #888
+
+#### Features
+
+* **textAngular:** textAngular-sanitize now respects and keeps most whitespace and html comments! ([aba8265](http://github.com/fraywing/textAngular/commit/aba826510f5356318673c622cfa55be512801581), closes [#846, #847]
+* **textAngularSetup:** textAngularSetup - fixed dependency issue with textAngularSetup to all use of constant taRegisterTool. Closes PR #866 (https://github.com/fraywing/textAngular/pull/866)
+
+
+
+### 1.4.5 (2015-09-15)
+ * Fix(css): fixed css/js mistake in the 1.4.4 release!
+
+
+### 1.4.4 (2015-09-12)
+
+
+#### Bug Fixes
+
+* **coverage:** Gruntfile -- coverage back to 100% and fixed the banner. ([55f2c9a3](https://github.com/fraywing/textAngular/commit/55f2c9a3))
+* **gitcommit:** Demo pages was not being included ([aa570e87](https://github.com/fraywing/textAngular/commit/aa570e87))
+* **textAngular:**
+ * Fix(main): tests weren't running without requireJS ([e40874ad](https://github.com/fraywing/textAngular/commit/e40874ad)
+ * Fix issue with two baners being included in the build ([776db53](https://github.com/fraywing/textAngular/commit/776db53))
+ * Fix memory leak for event window.blur ([bd3e84f1](https://github.com/fraywing/textAngular/commit/bd3e84f1))
+ * Fix 644 parse whitespace from plaintext ([5c028f5b](https://github.com/fraywing/textAngular/commit/5c028f5b))
+ * Fix(Readme): Plunkr was not loading ([e10644de](https://github.com/fraywing/textAngular/commit/e10644de2))
+ * Fix image resize ([e9d6f079](https://github.com/fraywing/textAngular/commit/e9d6f079))
+ * fix popover requires 2 clicks to hide ([fed6cca0](https://github.com/fraywing/textAngular/commit/fed6cca0))
+
+
+#### Features
+
+* **textAngular:** Full support for commonjs (Closes #737, #712, #713, #716, #708, #709, #853) ([a0a84553](https://github.com/fraywing/textAngular/commit/a0a84553))
+* **demo:** Updated the demo pages to 1.4.3 ([ddd000df](https://github.com/fraywing/textAngular/commit/ddd000df))
+
+
+
+### 1.4.3 (2015-07-30)
+
+
+#### Bug Fixes
+
+* **textAngular:** Fix image resize broken for chrome ([86072d4b](https://github.com/fraywing/textAngular/commit/86072d4b))
+* **textAngularSetup:** Inorder to fully block Undo or Redo, one must also call event.preventDefault() ([aedc38e4](https://github.com/fraywing/textAngular/commit/aedc38e4))
+* **textAngular:** Fix remove CSSRule-when-no-rules ([0eb2f38](https://github.com/fraywing/textAngular/commit/86072d4b))
+
+#### Features
+
+* **taToolbar:** Update insertVideo to handle youtube link variants ([1372bc1d](https://github.com/fraywing/textAngular/commit/1372bc1d))
+* **test:** Added coverage for 'justifyFull' button. ([72cca334](https://github.com/fraywing/textAngular/commit/72cca334))
+* **textAngularSetup:**
+ * Added taOptions.keyMappings to customize key bindings. ([05546ab4](https://github.com/fraywing/textAngular/commit/05546ab4))
+ * Added taOptions.keyMappings to adjustment the key bindings for Redo, Undo, ... ([de12e3e3](https://github.com/fraywing/textAngular/commit/de12e3e3))
+ * Added a taOptions:forceTextAngularSanitize to verify sanitizer provider. ([ad04836b](https://github.com/fraywing/textAngular/commit/ad04836b))
+ * Added a taOptions:forceTextAngularSanitize to verify sanitizer provider. ([8e642c15](https://github.com/fraywing/textAngular/commit/8e642c15))
+
+#### Breaking Changes
+
+If you were using a different sanitize provider instead of textAngular-sanitize we will now detect this and throw an error. To eliminate this error set taOptions.forceTextAngularSanitize: false
+
+
+### 1.4.2 (2015-07-15)
+
+#### Bug Fixes
+
+* **textAngular:** corrected undefined event #796 ([6186ed52](https://github.com/fraywing/textAngular/commit/6186ed52))
+* **taBind:** Reapply selector handles on focus ([f05857e3](https://github.com/fraywing/textAngular/commit/f05857e3))
+* **textAngular:** Fixed resize image issue ([52fb20c0](https://github.com/fraywing/textAngular/commit/52fb20c0))
+* **grunt:** Update javascript path in watch target ([58df955d](https://github.com/fraywing/textAngular/commit/58df955d))
+* **textAngular:**
+ * Fixed test coverage when commonElement is document ([b807423b](https://github.com/fraywing/textAngular/commit/b807423b ))
+ * Fixed corner case when commonElement is document ([dbea6244](https://github.com/fraywing/textAngular/commit/dbea6244))
+ * Use CSS instead of html attributes to resize image. ([a84f6df4](https://github.com/fraywing/textAngular/commit/a84f6df4))
+ * Fix resize image issue ([52fb20c0](https://github.com/fraywing/textAngular/commit/52fb20c0))
+
+#### Features
+
+* **textAngular:**
+ * Added directives ta-resize-keep-aspect-ratio and ta-resize-maintain-aspect-ratio to control image-resize ([32697058](https://github.com/fraywing/textAngular/commit/32697058))
+ * Added input to the safe element list ([945cfa00](https://github.com/fraywing/textAngular/commit/945cfa00))
+* **textAngularDemo:** Updated the demo to be in synch with this release ([93fd4048](https://github.com/fraywing/textAngular/commit/93fd4048))
+* **globals:** Added aria-hidden to hidden input, to hide it from screen readers ([b49bf814](https://github.com/fraywing/textAngular/commit/b49bf814))
+* **textAngularSetup:** Enhanced toolbar to handle TAB and SHIFT-TAB KEYS. ([8df51fb](https://github.com/fraywing/textAngular/commit/8df51fb))
+* **taToolFunctions:** Create factory for sharable functions ([032611dd](https://github.com/fraywing/textAngular/commit/032611dd))
+
+
+### 1.4.1 (2015-05-25)
+
+#### Breaking Changes
+
+This changes the structure of the files - all production files are now in the dist folder, this makes where PR's should be done a little more clear.
+
+If you were referencing the src/*.js files they will need to be updated to dist/*js.
+
+#### Bug Fixes
+
+* **taPaste:** Fix the taPaste order s.t. sanitizer is called after paste handler. ([108857f6](http://github.com/fraywing/textAngular/commit/108857f69ac611f970ded65ba5c1207b8a6964d0), closes [#686](http://github.com/fraywing/textAngular/issues/686))
+
+
+
+## 1.4.0 (2015-05-24)
+
+#### Breaking Changes
+
+The minimum required versions of AngularJS is 1.3 and Rangy is 1.3.
+
+#### Bug Fixes
+
+* **chrome:** Make the matcher for detecting bad chorem tags more lenient ([05fe7a61](http://github.com/fraywing/textAngular/commit/05fe7a61470d41b6533f5220894ec1a3451dc801))
+* **taBind:** Updating while focussed. ([cc6d89be](http://github.com/fraywing/textAngular/commit/cc6d89bee18de5a2666aae075c707ae7aa68cb9f), closes [#38](http://github.com/fraywing/textAngular/issues/38))
+* **taBind.formatters:** Catch unwrapped content ([0cd98dd3](http://github.com/fraywing/textAngular/commit/0cd98dd3115f4e7d09263eeeb0136ec9d2ccaafa), closes [#584](http://github.com/fraywing/textAngular/issues/584))
+* **taBind.keyevents:** Attempted fix for polish character issues ([26226dda](http://github.com/fraywing/textAngular/commit/26226ddaa9f5468977f3a4849e265904ca2fad6a), closes [#518](http://github.com/fraywing/textAngular/issues/518))
+* **taBinde.undomanager:** Fix a bug with redo/undo beyond the borders ([dd023c30](http://github.com/fraywing/textAngular/commit/dd023c30537cd79550de630f7d4360331eb02975), closes [#558](http://github.com/fraywing/textAngular/issues/558))
+
+
+* **taTools:** Added options for tools in taOptions ([7fb00a02](http://github.com/fraywing/textAngular/commit/7fb00a02993f8c02b09f8a24c3c267b6ba4f8fbd))
+
+
+
+### 1.3.11 (2015-03-16)
+
+
+
+### 1.3.10 (2015-03-16)
+
+
+#### Bug Fixes
+
+* **placeholder:** multiple textAngular will cause CSSRule index error ([943f08d5](http://github.com/fraywing/textAngular/commit/943f08d5b1ccc1c358071e67f5968267a0664299))
+
+
+
+### 1.3.9 (2015-03-13)
+
+
+#### Bug Fixes
+
+* **taBind.$formatters:** Fix an issue where unwrapped tags broke the textarea display ([d39c7b63](http://github.com/fraywing/textAngular/commit/d39c7b63732b345b826068de4f9655d082d74262), closes [#566](http://github.com/fraywing/textAngular/issues/566))
+
+
+
+### 1.3.8 (2015-03-13)
+
+
+#### Bug Fixes
+
+* **taBind:** Fix tab focus issue. ([8693e1d6](http://github.com/fraywing/textAngular/commit/8693e1d69daf44bb4ca6a94863bd2e43b598f571), closes [#483](http://github.com/fraywing/textAngular/issues/483), [#379](http://github.com/fraywing/textAngular/issues/379))
+* **textAngular.popover:** Add scroll top offset. ([f12eb86d](http://github.com/fraywing/textAngular/commit/f12eb86d7dd473244f09982dc1b13b0e0949ca5c))
+
+
+
+### 1.3.7 (2015-02-13)
+
+
+#### Bug Fixes
+
+* **taSanitize:** Close XSS vector, See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0167, http://xforce.iss.net/xforce/xfdb/100929 and https://exchange.xforce.ibmcloud.com/#/vulnerabilities/100929 for details. ([f5f27c26](http://github.com/fraywing/textAngular/commit/f5f27c26bc99dc6f8bb226d7beb99ce8bcada01a))
+
+
+
+### 1.3.6 (2015-02-06)
+
+
+#### Bug Fixes
+
+* **taSelection:** Fix selecting end of element being after trailing ([e1008dfc](http://github.com/fraywing/textAngular/commit/e1008dfc02592b8484ff618bafbcd7f30084b8e4))
+
+
+#### Features
+
+* **taBind:** Allow updates while focussed. ([452c7f01](http://github.com/fraywing/textAngular/commit/452c7f010aea73a69d09672623b5deb6b8a32bf4), closes [#38](http://github.com/fraywing/textAngular/issues/38))
+
+
+
+### 1.3.5 (2015-02-05)
+
+
+#### Bug Fixes
+
+* **globals:** Fix document.head undefined in IE<9 ([da435392](http://github.com/fraywing/textAngular/commit/da435392a099d2ce7aaf63458556fe64831426f6), closes [#530](http://github.com/fraywing/textAngular/issues/530))
+* **sanitize:** Port script/style fix over from main repo. ([7975a26d](http://github.com/fraywing/textAngular/commit/7975a26d81b24c45c27af147ea86df6e12d2022d), closes [#533](http://github.com/fraywing/textAngular/issues/533))
+* **taBind.paste:** Fix some paste isuses. ([f989f6c2](http://github.com/fraywing/textAngular/commit/f989f6c2fd4251d94f80387d00098fe4f31970f0))
+* **taSelection:** Fix a bug in insert HTML. ([7003b27b](http://github.com/fraywing/textAngular/commit/7003b27bb110a5c7f0909e77f5c033fe35766fb0))
+
+
+#### Features
+
+* **ta-hidden-input:** Add new class for hidden inputs ([07eda5a8](http://github.com/fraywing/textAngular/commit/07eda5a8768c7171efc905d7b95f7fd5375d3c99))
+* **ta-paste:** Add attribute that allows intercetping of the pasted content. ([39698985](http://github.com/fraywing/textAngular/commit/39698985dbc6a7a83be7328b3f89b42b0d948d39))
+* **taDOM:** New services or dealing with html nodes ([a08bdc53](http://github.com/fraywing/textAngular/commit/a08bdc538b50f3cbc283877a90b380c6e77dacf1))
+
+
+
+### 1.3.4 (2015-02-02)
+
+
+#### Bug Fixes
+
+* **dependancies:** Changed Bootstrap to Bootstrap-css-only ([9250bf5a](http://github.com/fraywing/textAngular/commit/9250bf5a32ea5a76be0c7fb605bb499df775b1b4), closes [#527](http://github.com/fraywing/textAngular/issues/527))
+* **npm:** Fix installation issues with npm ([902fa692](http://github.com/fraywing/textAngular/commit/902fa692eed54211099af3e4e4a70eb060d46fe1), closes [#522](http://github.com/fraywing/textAngular/issues/522))
+
+
+
+### 1.3.3 (2015-01-28)
+
+
+#### Bug Fixes
+
+* **taBind._blankTest:** Fix for highly nested content. ([4bbfbaba](http://github.com/fraywing/textAngular/commit/4bbfbabae7f85c810f1a614bb515a1454d3fb29c), closes [#512](http://github.com/fraywing/textAngular/issues/512))
+* **textAngularSetup:**
+ * Add tooltips for buttons on edit link popover ([0f980d3f](http://github.com/fraywing/textAngular/commit/0f980d3fc72959e42a3ba81e068fad5911454014))
+ * Add translation for "Open in New Window" button on edit link popover ([d61ff1da](http://github.com/fraywing/textAngular/commit/d61ff1da442be64b647ba4341bc8099aea0e3967))
+
+
+
+### 1.3.2 (2015-01-27)
+
+
+#### Bug Fixes
+
+* **dependancies:** Revert back to stable rangy version ([498176d2](http://github.com/fraywing/textAngular/commit/498176d21ee056ac5fd0348b9a6c8309ab27312e))
+* **taSanitize:** Fix issue with last pre-tag overwriting all previous. ([230e779e](http://github.com/fraywing/textAngular/commit/230e779e9b9ae6f2de59a3e53e1def55420b8dd2), closes [#508](http://github.com/fraywing/textAngular/issues/508))
+
+
+
+### 1.3.1 (2015-01-23)
+
+
+#### Bug Fixes
+
+* **Bower:** Rangy-official renamed to rangy. ([652204c9](http://github.com/fraywing/textAngular/commit/652204c9e2b271eee51159c27f90d1a429c0acb1))
+
+
+
+## 1.3.1 (2015-01-23)
+
+
+#### Bug Fixes
+
+* **Bower:** Rangy-official renamed to rangy. ([652204c9](http://github.com/fraywing/textAngular/commit/652204c9e2b271eee51159c27f90d1a429c0acb1))
+
+
+
+## 1.3.0 (2015-01-22)
+
+
+#### Features
+
+* **taBind:**
+ * Textarea basic formatting of html with tabs and newlines ([f0d3baf8](http://github.com/fraywing/textAngular/commit/f0d3baf8dd99e11f746e6aa17ccf1e94c2842a87), closes [#307](http://github.com/fraywing/textAngular/issues/307))
+ * Allow the events to be overriden in external directives ([c4b7bdda](http://github.com/fraywing/textAngular/commit/c4b7bdda609deb49d4c51cacd835c4082843c14b), closes [#493](http://github.com/fraywing/textAngular/issues/493))
+
+
+
+### 1.3.0-23 (2015-01-20)
+
+
+#### Bug Fixes
+
+* **taBind:** Issue when unwrapped text was entered ([51f37284](http://github.com/fraywing/textAngular/commit/51f37284156bd2fca17a2c9aa7e42176393bf115), closes [#484](http://github.com/fraywing/textAngular/issues/484))
+
+
+
+### 1.3.0-22 (2015-01-13)
+
+
+#### Bug Fixes
+
+* **main.events:** ng-focus wasn't being triggered on focus. ([3928bc50](http://github.com/fraywing/textAngular/commit/3928bc50205fb53de8c7cc08e213fc4f0b6aca24), closes [#482](http://github.com/fraywing/textAngular/issues/482))
+* **taBind._blankTest:** Fix a bug where the first tag had really big attributes and cut off the actual c ([fe800b24](http://github.com/fraywing/textAngular/commit/fe800b24cbcfad53f2e9a0b793b1ead9b7b4d45e), closes [#484](http://github.com/fraywing/textAngular/issues/484))
+
+
+
+### 1.3.0-21 (2015-01-06)
+
+
+#### Bug Fixes
+
+* **taBind:** Add blankTest tests and seperate service ([c3900a4a](http://github.com/fraywing/textAngular/commit/c3900a4a64c9b51632bc70c0e305d2752faa0ba3))
+* **textAngular.resize:** Fixes resize overlay with more than one image ([c08ddd75](http://github.com/fraywing/textAngular/commit/c08ddd75282cea89e5c2bfed64bee7fc2f78b1a5), closes [#470](http://github.com/fraywing/textAngular/issues/470))
+
+
+
+### 1.3.0-20 (2015-01-05)
+
+
+#### Bug Fixes
+
+* **textAngular.resize-overlay:** Catch when height or width is NaN ([efcb4115](http://github.com/fraywing/textAngular/commit/efcb411523aecab53a1798a7c25057f34f461444), closes [#470](http://github.com/fraywing/textAngular/issues/470))
+* **textangular:** Fix focus issues in IE11 ([a5200e38](http://github.com/fraywing/textAngular/commit/a5200e38780744ad71aa30f83871917a22fd8471), closes [#443](http://github.com/fraywing/textAngular/issues/443))
+
+
+
+### 1.3.0-19 (2014-12-18)
+
+
+#### Bug Fixes
+
+* **taBind:** Catch edge case on mouseup handler when no children ([e1140893](http://github.com/fraywing/textAngular/commit/e11408932653cb1e8adfae628fa34c495c7892bf), closes [#446](http://github.com/fraywing/textAngular/issues/446))
+* **textAngular:** Add stop of update selected styles on blur. ([c877991d](http://github.com/fraywing/textAngular/commit/c877991de312b7e78865d4f03390de5a2e4d40c2), closes [#443](http://github.com/fraywing/textAngular/issues/443))
+
+
+
+### 1.3.0-18 (2014-12-17)
+
+
+#### Bug Fixes
+
+* **textAngular:** Fixes the window blur check for updating styles ([72a5da81](http://github.com/fraywing/textAngular/commit/72a5da815ba8cad96ec70ab920dcf14971bdb05d))
+
+
+
+### 1.3.0-17 (2014-12-16)
+
+
+
+### 1.3.0-16 (2014-12-16)
+
+
+#### Bug Fixes
+
+* **taBind:**
+ * Ensure onSelectHandlers are allways applied with DOM changes ([01873453](http://github.com/fraywing/textAngular/commit/0187345359cb833a43f76bd6385e67f79193c84c), closes [#446](http://github.com/fraywing/textAngular/issues/446))
+ * Fix cursor selection on focus ([05f15a5e](http://github.com/fraywing/textAngular/commit/05f15a5e4adcd4d21cd3b9085bcd031e5d0e0c65), closes [#444](http://github.com/fraywing/textAngular/issues/444))
+ * _blankTest should be more performant now and stop crashing chrome ([57ff7ba1](http://github.com/fraywing/textAngular/commit/57ff7ba1d6154ef9202fe13aacc4a3efe1da2d87), closes [#451](http://github.com/fraywing/textAngular/issues/451))
+* **taBind.paste:** Fix multi-paste issue ([58f75379](http://github.com/fraywing/textAngular/commit/58f7537926368a1da96c614f0c02790029e1f284), closes [#392](http://github.com/fraywing/textAngular/issues/392))
+* **taSanitize:**
+ * Fix inconsistencies between browsers of bold, italics and underline ([dd479a16](http://github.com/fraywing/textAngular/commit/dd479a166a054fcd4f2defada0b72a0fc84777ea))
+ * fix also container (#424) ([a49600de](http://github.com/fraywing/textAngular/commit/a49600de089281b5562cdad8d7ccefa7e905baf5))
+ * add test (#424) ([2b94c7c1](http://github.com/fraywing/textAngular/commit/2b94c7c1dca4dde0aa3f9bfe534649f2a5070235))
+ * copy code to lib/factories.js (#424) ([e61f69c0](http://github.com/fraywing/textAngular/commit/e61f69c075ec56a7499df9894b881f4ef634ed10))
+ * merge taPreSatitize to taSanitize (#424) ([e3c9cf6e](http://github.com/fraywing/textAngular/commit/e3c9cf6e665b6e92fe5fc5d62ded35407e15743c))
+ * fix for #424 ([91b16c89](http://github.com/fraywing/textAngular/commit/91b16c89fa2176d2bc27ec804f4d08fb5d471ccd))
+* **textAngular:** Prevent updateSelectedStyles loop when out of document focus ([81a37de7](http://github.com/fraywing/textAngular/commit/81a37de7a48b1d17933843c07559398c0c430ad5))
+
+
+
+### 1.3.0-pre15 (2014-12-05)
+
+
+#### Bug Fixes
+
+* **DOM:** Fix for convert to lists ([75cc1441](http://github.com/fraywing/textAngular/commit/75cc14418a7c8cde971b37847d2025a3f4c6abee), closes [#377](http://github.com/fraywing/textAngular/issues/377))
+* **placeholder:** add missing return ([799a4ff0](http://github.com/fraywing/textAngular/commit/799a4ff0112c35cb68822eca10ff1a9f4250ab11))
+* **taBind:** Fix paste issues ([f9d7e423](http://github.com/fraywing/textAngular/commit/f9d7e42336483da7376095fc1f741d6d0322a4df), closes [#407](http://github.com/fraywing/textAngular/issues/407))
+* **taExecCommand:** Fix List conversion bug. ([d97842c6](http://github.com/fraywing/textAngular/commit/d97842c6696544e6971fcfda64ad91de908e79be), closes [#399](http://github.com/fraywing/textAngular/issues/399))
+
+
### 1.3.0-pre14 (2014-11-11)
diff --git a/demo/demo.html b/demo/demo.html
index c691e21e..c5934b13 100644
--- a/demo/demo.html
+++ b/demo/demo.html
@@ -2,70 +2,71 @@
-
-
-
- textAngular 1.2.2 Demo
-
-
-
-
-
-
+
+ textAngular 1.5.16 Demo
+
+
+
+
+ h1 small {
+ font-size: 60%;
+ }
+ textarea.ta-bind {
+ width: 100%;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
Editor {{version}}
+
+
+
Raw HTML in a text area
+
+
Bound with ng-bind-html
+
+
Bound with ta-bind, our internal html-binding directive
+
+
+
Note: although we support classes and styles, angularjs' ng-bind-html directive will strip out all style attributes.
+
Option to masquerade as a fancy text-area - complete with form submission and optional ngModel
+
+
Any HTML we put in-between the text-angular tags gets automatically put into the editor if there is not a value assigned to the ngModel.
+
If there is a value assigned to the ngModel, it replaces any html here. To see this, uncomment the line at the bottom of demo.html
+
+
Bound with ta-bind, our internal html-binding directive
+
+
-
-
Editor
-
-
-
Raw HTML in a text area
-
-
Bound with ng-bind-html
-
-
Bound with ta-bind, our internal html-binding directive
-
-
-
Note: although we support classes and styles, angularjs' ng-bind-html directive will strip out all style attributes.
-
-
Option to masquerade as a fancy text-area - complete with form submission and optional ngModel
-
-
Any HTML we put in-between the text-angular tags gets automatically put into the editor if there is not a value assigned to the ngModel.
-
If there is a value assigned to the ngModel, it replaces any html here. To see this, uncomment the line at the bottom of demo.html
-
-
Bound with ta-bind, our internal html-binding directive