Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

textangular

fraywing37.6kMIT1.5.16

A radically powerful Text-Editor/Wysiwyg editor for Angular.js

AngularJS, text editor, WYSIWYG, directive

readme

textAngular v1.5.15

Build Status Coverage Status

Demo is available at: http://www.textangular.com (Or editable Plunkr Demo)

Upgrading From 1.2.2 or earlier

To upgrade from version 1.2.2 or earlier you need to follow these steps:

  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

Requirements

  1. AngularJS1.3.x
  2. Rangy1.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-Awesome4.x for the default icons on the toolbar
  4. Bootstrap3.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

NOTE: Our textAngular-sanitize.js and angular.js's angular-sanitize.js are the SAME file, you must include one or the other but not both. We highly recommend using textAngular-sanitize.js as it loosens some parts of the sanitizer that are far too strict for our uses and adds some more features we need.

Via Bower:

Run bower install textAngular from the command line. Include script tags similar to the following:

<link rel='stylesheet' href='/bower_components/textAngular/dist/textAngular.css'>
<script src='/bower_components/textAngular/dist/textAngular-rangy.min.js'></script>
<script src='/bower_components/textAngular/dist/textAngular-sanitize.min.js'></script>
<script src='/bower_components/textAngular/dist/textAngular.min.js'></script>

Via NPM:

Run npm install textangular from the command line. Include script tags similar to the following:

<link rel='stylesheet' href='/node_modules/textangular/dist/textAngular.css'>
<script src='/node_modules/textangular/dist/textAngular-rangy.min.js'></script>
<script src='/node_modules/textangular/dist/textAngular-sanitize.min.js'></script>
<script src='/node_modules/textangular/dist/textAngular.min.js'></script>

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:

<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular-rangy.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular-sanitize.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.5.0/textAngular.min.js'></script>

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)

<script src='http://cdn.jsdelivr.net/g/angular.textangular@1.5.0(textAngular-rangy.min.js+textAngular-sanitize.min.js+textAngular.min.js)'></script>

Via Github

Download the code from https://github.com/fraywing/textAngular/releases/latest, unzip the files then add script tags similar to the following:

<link rel='stylesheet' href='/path/to/unzipped/files/dist/textAngular.min.css'>
<script src='/path/to/unzipped/files/dist/textAngular-rangy.min.js'></script>
<script src='/path/to/unzipped/files/dist/textAngular-sanitize.min.js'></script>
<script src='/path/to/unzipped/files/dist/textAngular.min.js'></script>

Usage

  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']).
  5. Create an element to hold the editor and add an ng-model="htmlVariable" attribute where htmlVariable is the scope variable that will hold the HTML entered into the editor:
    <div text-angular ng-model="htmlVariable"></div>
    OR
    <text-angular ng-model="htmlVariable"></text-angular>
    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.

Issues?

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 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.
  2. Youtube Insert embeds a <img> 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: <div ta-bind ng-model="data.htmlcontent"></div>. This invokes our custom renderers to convert the <img> tags back into the youtube video you expect.
  3. But I want to use Youtube outside of angular
    You'll have to apply the renderers manually, see comment in issue #469 for details.
  4. IE Is automatically converting typed links to <a href...> tags
    This is a known issue with IE, to prevent this run the following javascript after page load: document.execCommand("AutoUrlDetect", false, false). See #475 for details.
  5. Error "textAngular Error: An editor with the name already exists" occurs
    See Issue #240 for specific details on why this occurs and how to resolve it.

Developer Notes

When checking out, you need a node.js installation, running npm install and then bower install will get you setup with everything to run the unit tests and minification. All changes should be done in the src folder, running grunt compile to compile the app or use grunt watch to compile the files as you save them. When you are ready to create A PR check that grunt passes without errors and you have created tests for your feature if necessary.

Customization

It is possible to override the toolbar by using a decorator in the module's .config block. Simply set the taOptions.toolbar to an array of arrays comprised of button names. Each array of button names represents a button group. The default toolbar can be represented like so:

  taOptions.toolbar = [
      ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'quote'],
      ['bold', 'italics', 'underline', 'strikeThrough', 'ul', 'ol', 'redo', 'undo', 'clear'],
      ['justifyLeft', 'justifyCenter', 'justifyRight', 'indent', 'outdent'],
      ['html', 'insertImage','insertLink', 'insertVideo', 'wordcount', 'charcount']
  ];

New buttons can be created using taRegisterTool. Examples can be found inside demo/static-demo.html

License

This project is licensed under the MIT license.

Contributers

Special thanks to all the contributions thus far!

For a full list see: https://github.com/fraywing/textAngular/graphs/contributors

changelog

1.5.16 (2016-12-05)

Bug Fixes

  • taFixChrome, taFixChrome.spec: corrected a bug introduced when correcting pasted html (see PR #1411) (35be0a0)

1.5.15 (2016-12-04)

Bug Fixes

  • taBind: (from damien-otis) Add code to handle pasting text in IE #1410 (b9863c2)
  • taBind: corrected bug #1379 where the paste from word was broken for lists (c11765d)
  • taFixChrome, taFixChrom.spec: fixed bug where the html was being damaged on pasted html (425396d)
  • Note: with this release we shift from tab's in the source code to 4 spaces!

1.5.14 (2016-11-30)

Bug Fixes

  • DOM: corrected a bug where we could not insertHTML when the document was empty. (ba156c4)
  • taBind: corrected a bug where we attempted to restore the selection in element.on('input') when the document was empty after a delete.
  • textAngularSetup): corrected a bug where we would throw an error in taRegisterTool('justifyFull'), taRegisterTool('justifyRight'), and taRegisterTool('justifyLeft') when it was illegal to call .css('text-align). We now catch and suppress those errors.

1.5.13 (2016-11-10)

Bug Fixes

  • main: Corrected issue #1353 where the dropEvent.target was not being used. (be038c2)
  • main: Corrected issue #1359 and some older issues around refesh of popover display (4ef827e)
  • taBind: Corrected issue #1361 can't paste word document with tables (f27d444)
  • taBind: Corrected issue where Apple ignores Shift+Enter on Safari (cd9de24)
  • taBind, textAngular-sanitize: Corrected and enhanced formating comming from Word and OneNote (fbcd381)
  • main: Cleanup event handlers that are placed on the window (from Bret Little)
  • textAngularSetup: Fix clear formatting functionality when used with ta-default-wrap=br #1374 - thanks to damien-otis for this fix. 0e45059062fadf2499b4d4d4f78621a49cb89968
  • taBind: Fix don't deselect after 1000ms after applying styling #1381 - thanks to damien-otis for this fix

1.5.12 (2016-10-03)

Bug Fixes

  • DOM: Issue #754 is not corrected. Now wrapSelection('insertHtml', embed, true) can insert '\n' (424ac59)
  • main: added a click monitor to the resize.background to shift the focus back to editor when closed. (a3133ca)
  • main: Corrected issue editor only focuses when files are dropped - drop text behavior, Schamelhout
  • main: Fix multi-deselect problem #1334 from mikolawannabe (64d0c4a)
  • taBind: Corrected console errors caused by #text nodes - damien-otis. (6dd1556)
  • main: Corrected issue #299 around the positioning of the popover on scrolling (53f9529)
  • main: Corrected Issue: #1326 (f9715de) No reflowPopover() when window resized or scrolled.
  • taBind: Corrected 'MS Word, some word spaces get lost (line break issue?)' #598 (e29e463)

1.5.11 (2016-10-01)

Bug Fixes

  • demo: improved the style usage (58f7f8d)
  • demo/textAngular.com.html: fixed issue #611 by adding a 'clearfix' to the ta-text-editor-class attribute. (3683747)
  • DOM: corrected bug #1343 where we were incorrectly setting the link on a
  • element (44d5c56)
  • factories: small fix for undefined unsafe.replace #1335 (12a7b27)

1.5.10 (2016-09-19)

Bug Fixes

1.5.9 (2016-09-05)

Bug Fixes

  • factories.js: removed the extra > and (76a31e2)
  • main: We now properly update the toolbar when we tab into the editor. (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.

    <a name"1.5.8">

    1.5.8 (2016-08-31)

    Bug Fixes

    • textAngular:
      • Fixed several issues around Italic, Bold, Strikethrough, Underline state in the (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

    <a name"1.5.7">

    1.5.7 (2016-08-23)

    <a name"1.5.6">

    1.5.6 (2016-08-23)

    Bug Fixes

    <a name"1.5.6-0">

    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

    <a name"1.5.5">

    1.5.5 (2016-08-15)

    <a name"1.5.4">

    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 <br> insertions
                We now insert zero width spaces in place of <br> that is
                a '&#8203' 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 <div class='test-class'></div>
                         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)

    <a name"1.5.3">

    1.5.3 (2016-07-29)

    Bug Fixes

    <a name"1.5.2">

    1.5.2 (2016-07-15)

    Bug Fixes

    Features

    <a name"1.5.1">

    1.5.1 (2016-04-25)

    <a name"1.5.0">

    1.5.0 (2016-01-16)

    Bug Fixes

    • main.js:
      • we now hide the popover at the end of the image resize. (c182c96c)
      • we now hide the popover at the end of the image resize. (d9cfcf15)
      • Fix for #862 where the model was not changing after image resize. (d5a508e3)
    • taBind.js: Fix bug #843 -- improper closing of list elements (a0b79276)
    • textAngular-santitize: Fix for internal model ignores style attr #854 (9fc7288b)

    <a name"1.4.6">

    1.4.6 (2015-09-20)

    Bug Fixes

    • textAngular:
      • Fix(textAngular): several bug fixes related to pasting from word. Closes #644, #617 (f7d34a33)
      • Fix(textAngular): several bug fixes related to pasting from word. Closes #644, #617 (f7d34a33)
      • 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, 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)

    <a name"1.4.5">

    1.4.5 (2015-09-15)

    • Fix(css): fixed css/js mistake in the 1.4.4 release!

    <a name"1.4.4">

    1.4.4 (2015-09-12)

    Bug Fixes

    • coverage: Gruntfile -- coverage back to 100% and fixed the banner. (55f2c9a3)
    • gitcommit: Demo pages was not being included (aa570e87)
    • textAngular:
      • Fix(main): tests weren't running without requireJS (e40874ad
      • Fix issue with two baners being included in the build (776db53)
      • Fix memory leak for event window.blur (bd3e84f1)
      • Fix 644 parse whitespace from plaintext (5c028f5b)
      • Fix(Readme): Plunkr was not loading (e10644de)
      • Fix image resize (e9d6f079)
      • fix popover requires 2 clicks to hide (fed6cca0)

    Features

    • textAngular: Full support for commonjs (Closes #737, #712, #713, #716, #708, #709, #853) (a0a84553)
    • demo: Updated the demo pages to 1.4.3 (ddd000df)

    <a name"1.4.3">

    1.4.3 (2015-07-30)

    Bug Fixes

    • textAngular: Fix image resize broken for chrome (86072d4b)
    • textAngularSetup: Inorder to fully block Undo or Redo, one must also call event.preventDefault() (aedc38e4)
    • textAngular: Fix remove CSSRule-when-no-rules (0eb2f38)

    Features

    • taToolbar: Update insertVideo to handle youtube link variants (1372bc1d)
    • test: Added coverage for 'justifyFull' button. (72cca334)
    • textAngularSetup:
      • Added taOptions.keyMappings to customize key bindings. (05546ab4)
      • Added taOptions.keyMappings to adjustment the key bindings for Redo, Undo, ... (de12e3e3)
      • Added a taOptions:forceTextAngularSanitize to verify sanitizer provider. (ad04836b)
      • Added a taOptions:forceTextAngularSanitize to verify sanitizer provider. (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

    <a name"1.4.2">

    1.4.2 (2015-07-15)

    Bug Fixes

    • textAngular: corrected undefined event #796 (6186ed52)
    • taBind: Reapply selector handles on focus (f05857e3)
    • textAngular: Fixed resize image issue (52fb20c0)
    • grunt: Update javascript path in watch target (58df955d)
    • textAngular:
      • Fixed test coverage when commonElement is document (b807423b)
      • Fixed corner case when commonElement is document (dbea6244)
      • Use CSS instead of html attributes to resize image. (a84f6df4)
      • Fix resize image issue (52fb20c0)

    Features

    • textAngular:
      • Added directives ta-resize-keep-aspect-ratio and ta-resize-maintain-aspect-ratio to control image-resize (32697058)
      • Added input to the safe element list (945cfa00)
    • textAngularDemo: Updated the demo to be in synch with this release (93fd4048)
    • globals: Added aria-hidden to hidden input, to hide it from screen readers (b49bf814)
    • textAngularSetup: Enhanced toolbar to handle TAB and SHIFT-TAB KEYS. (8df51fb)
    • taToolFunctions: Create factory for sharable functions (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, closes #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)
    • taBind: Updating while focussed. (cc6d89be, closes #38)
    • taBind.formatters: Catch unwrapped content (0cd98dd3, closes #584)
    • taBind.keyevents: Attempted fix for polish character issues (26226dda, closes #518)
    • taBinde.undomanager: Fix a bug with redo/undo beyond the borders (dd023c30, closes #558)
    • taTools: Added options for tools in taOptions (7fb00a02)

    1.3.11 (2015-03-16)

    1.3.10 (2015-03-16)

    Bug Fixes

    • placeholder: multiple textAngular will cause CSSRule index error (943f08d5)

    1.3.9 (2015-03-13)

    Bug Fixes

    • taBind.$formatters: Fix an issue where unwrapped tags broke the textarea display (d39c7b63, closes #566)

    1.3.8 (2015-03-13)

    Bug Fixes

    1.3.7 (2015-02-13)

    Bug Fixes

    1.3.6 (2015-02-06)

    Bug Fixes

    • taSelection: Fix selecting end of element being after trailing
      (e1008dfc)

    Features

    • taBind: Allow updates while focussed. (452c7f01, closes #38)

    1.3.5 (2015-02-05)

    Bug Fixes

    • globals: Fix document.head undefined in IE<9 (da435392, closes #530)
    • sanitize: Port script/style fix over from main repo. (7975a26d, closes #533)
    • taBind.paste: Fix some paste isuses. (f989f6c2)
    • taSelection: Fix a bug in insert HTML. (7003b27b)

    Features

    • ta-hidden-input: Add new class for hidden inputs (07eda5a8)
    • ta-paste: Add attribute that allows intercetping of the pasted content. (39698985)
    • taDOM: New services or dealing with html nodes (a08bdc53)

    1.3.4 (2015-02-02)

    Bug Fixes

    • dependancies: Changed Bootstrap to Bootstrap-css-only (9250bf5a, closes #527)
    • npm: Fix installation issues with npm (902fa692, closes #522)

    1.3.3 (2015-01-28)

    Bug Fixes

    • taBind._blankTest: Fix for highly nested content. (4bbfbaba, closes #512)
    • textAngularSetup:
      • Add tooltips for buttons on edit link popover (0f980d3f)
      • Add translation for "Open in New Window" button on edit link popover (d61ff1da)

    1.3.2 (2015-01-27)

    Bug Fixes

    • dependancies: Revert back to stable rangy version (498176d2)
    • taSanitize: Fix issue with last pre-tag overwriting all previous. (230e779e, closes #508)

    1.3.1 (2015-01-23)

    Bug Fixes

    • Bower: Rangy-official renamed to rangy. (652204c9)

    1.3.1 (2015-01-23)

    Bug Fixes

    • Bower: Rangy-official renamed to rangy. (652204c9)

    1.3.0 (2015-01-22)

    Features

    • taBind:
      • Textarea basic formatting of html with tabs and newlines (f0d3baf8, closes #307)
      • Allow the events to be overriden in external directives (c4b7bdda, closes #493)

    1.3.0-23 (2015-01-20)

    Bug Fixes

    • taBind: Issue when unwrapped text was entered (51f37284, closes #484)

    1.3.0-22 (2015-01-13)

    Bug Fixes

    • main.events: ng-focus wasn't being triggered on focus. (3928bc50, closes #482)
    • taBind._blankTest: Fix a bug where the first tag had really big attributes and cut off the actual c (fe800b24, closes #484)

    1.3.0-21 (2015-01-06)

    Bug Fixes

    • taBind: Add blankTest tests and seperate service (c3900a4a)
    • textAngular.resize: Fixes resize overlay with more than one image (c08ddd75, closes #470)

    1.3.0-20 (2015-01-05)

    Bug Fixes

    • textAngular.resize-overlay: Catch when height or width is NaN (efcb4115, closes #470)
    • textangular: Fix focus issues in IE11 (a5200e38, closes #443)

    1.3.0-19 (2014-12-18)

    Bug Fixes

    • taBind: Catch edge case on mouseup handler when no children (e1140893, closes #446)
    • textAngular: Add stop of update selected styles on blur. (c877991d, closes #443)

    1.3.0-18 (2014-12-17)

    Bug Fixes

    • textAngular: Fixes the window blur check for updating styles (72a5da81)

    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, closes #446)
      • Fix cursor selection on focus (05f15a5e, closes #444)
      • _blankTest should be more performant now and stop crashing chrome (57ff7ba1, closes #451)
    • taBind.paste: Fix multi-paste issue (58f75379, closes #392)
    • taSanitize:
      • Fix inconsistencies between browsers of bold, italics and underline (dd479a16)
      • fix also container (#424) (a49600de)
      • add test (#424) (2b94c7c1)
      • copy code to lib/factories.js (#424) (e61f69c0)
      • merge taPreSatitize to taSanitize (#424) (e3c9cf6e)
      • fix for #424 (91b16c89)
    • textAngular: Prevent updateSelectedStyles loop when out of document focus (81a37de7)

    1.3.0-pre15 (2014-12-05)

    Bug Fixes

    1.3.0-pre14 (2014-11-11)

    Features

    • taTools: Toggle HTML now uses code symbol from Font-Awesome (856b31c3, closes #381)
    • textAngular:
      • Allow show html/code view by default, attribute ta-show-html. (abf7bfb2)
      • Name is available on editor scope as _name (6f03d559, closes #394)

    1.3.0-pre13 (2014-11-11)

    Bug Fixes

    • $animation: Fix angular 1.3.x compatability. (b74ddf61, closes #401)
    • placeholder: Fix the IE 11 bug with CSS style insert (8e9e6625, closes #390)
    • taExecCommand:
      • Fixes issue with list buttons and multiple lists. (76815cbf, closes #399)
      • Add default wrap option to formatBlock (c0fad4d9, closes #400)

    1.3.0-pre12 (2014-11-04)

    Bug Fixes

    • bower: Fix files in main bower definition. (00954faf, closes #382)
    • taBind: Fixes paste nested list from word issues (43bc8d9d)
    • taExecCommand: Fixes blockquote issue. (63480a67, closes #377)

    Features

    • taBind: Press enter to escape a blockquote (717c291c)

    1.3.0-pre11 (2014-10-31)

    Bug Fixes

    • taBind: Fix for only inline elements like img (7123785f)
    • taExecCommand: Fixes bug with blockquotes. (5edb37cf)

    1.3.0-pre10 (2014-10-30)

    Bug Fixes

    • taBind:
      • Fix paste from word issue with nested lists and different margin measurements. (20c4ea2e)
      • Issue with unwrapped/empty content. (be883684)
    • textAngularSetup: Fix wordcount and charcount display with large numbers. (42f1e349)

    1.3.0-pre9 (2014-10-24)

    Bug Fixes

    • compile: Keep copyright notices in minified files (9fe51ab6)
    • styling: Support other CSS frameworks. (280522a3)
    • taBind: Fixes paste lists, more lenient stripping of spans. (5ff572f6)
    • taExecCommand: Attempt to wrap unwrapped content in list breaks. (7b873df8)

    1.3.0-pre8 (2014-10-23)

    Bug Fixes

    • taBind: Fix some paste from word issues. (ca8af8b1)

    1.3.0-pre7 (2014-10-22)

    Bug Fixes

    • Setup: Make the rangy loaded check more forgiving. (ec778431)

    1.3.0-pre6 (2014-10-21)

    Bug Fixes

    • taBind: Fix the drop handler not re-applying on select handler (af233b9f)
    • taExecCommand: Fix lists for FF specifically. (0924a8ca, closes #290)
    • taSanitize: Allow id attribute. (7afc96c0, closes #355)
    • taTranslations: Change Constant to Value (58781ee9)

    Features

    • taBind.undoManager: Add undoManager to taBind. (bd2bb0ae)

    1.3.0-pre5 (2014-10-20)

    Bug Fixes

    • bower: Fixes angular bower dependancy to support 1.3.0 (491c8daf, closes #358)

    Features

    • taBind: Add paste from word converting. (e9edbdfe)

    1.3.0-pre4 (2014-10-06)

    Bug Fixes

    • taTools: Fixes the wordcount to count correctly. (fb208874)

    1.3.0-pre3 (2014-10-06)

    Bug Fixes

    • taTools:
      • If disabled is a value, respect it
      • Fix align active state when Justify / Full
      • Cleaned Up character count and stopped it from counting \n and \n\r linebreak characters.
    • taBind: Fixes a list bug
    • IE/Paste: More IE paste fixes.
    • fileDropHandler: Fixes non-binding and long running file drop handlers not updating the model

    1.3.0-pre2 (2014-10-06)

    Bug Fixes

    • taExecCommand: Shim the insertHTML function

    Features

    • taTools:
      • Add option to override default class
      • New word and character count tools.
      • Youtube videos now default to poster image from youtube API

    1.3.0-pre1 (2014-10-06)

    Bug Fixes

    • taBind:
      • Validation on just whitespace
      • Ignoring keyup event on unnecessary keys
      • Remove Isolate Scope
    • window.event: Window.event is undefined on FF
    • taExecCommand: Collapsed selection creates link with url
    • taTools: Fix clear collapsed list selection
    • animations: Disable animations while switching views
    • paste: Allow pasting of styles and random trash into the editor by sanitizing the paste event

    Features

    • taSelection: Add selection function
    • taSanitize: Add background-color to accepted style options
    • taTools: Add Strikethrough tool
    • CSP Compliance: TextAngular is now CSP Compiant

    OLD Changelog - PRE v1.3.0-pre1

    2014-07-26 v1.2.2

    • FIX #190, #201, #206, #223, #224,
    • Merge #209, #204
    • Add option to disable sanitizer #233

    2014-05-19 v1.2.1

    • Release

    2014-05-12 v1.2.1-pre6

    • FIX some FormatBlock issues.
    • Add .ta-bind class to the ta-bind directive.

    2014-05-01 v1.2.1-pre5

    • ADD Included some css built into the editor - no need for extra stylesheets unless you want to override.
    • CHANGE The registerTools function to be the entire signature so directives can be included as wanted.
    • ADD resizeOverlay functionality, includes a new scroll window that the ta-text editor nests inside to make positioning better (TODO: tests).
    • FIX ta-default-wrap in chrome bug.
    • ADD Class .ta-bind to all ta-bind directive elements.
    • FIX ta-default-wrap and other funkyness with ul/ol tags, #155.
    • FIX some execCommand bugs by adding taExecCommand.

    2014-04-08 v1.2.1-pre4

    • Fixing IE bugs with ta-default-wrap.

    2014-04-08 v1.2.1-pre3

    • Fixing a change focus bug introduced in v1.2.1-pre2
    • Changing the code so ta-bind no longer requires rangy-core.js, making it an optional requirement again.

    2014-04-08 v1.2.1-pre2

    • Fixed up ta-default-wrap. This now requires rangy-core.js
    • Fixed an IE Paste issue.
    • Fixed a webkit bug causing contenteditables not to loose focus.

    2014-03-24 v1.2.1-pre1

    • Moved setup functions into a seperate file, textAngularSetup.js. This file must be included before textAngular.js file. Using the defaults and textAngular.min.js causes no changes.
    • Adding the Image and Link click popup functions.
    • Adding ability to drag and drop files into the editor.
    • Manager now can add and remove tools dynamically.
    • Added Custom Renderers adding the ability to use placeholders, eg an image, in the editor and display something else in display mode. Uses factory function taApplyCustomRenderers to do this.

    2014-02-28 v1.2.0

    • Lots and Lots of changes, too many to list. Structural changes and added functionality. Supports down to IE8 and all other browsers.

    2013-12-11 v1.1.2

    • Updated to work correctly with IE (console.log bug)

    2013-12-11 v1.1.2-pre3

    • Added support for .focussed class and ng-focus to allow dynamic styling on focus events. #47
    • Updates to fix Angular.JS breaking with parameter renaming minification. #49
    • Minor bug fix to disable links from being 'clickable' in the editor.
    • Updated the default toolbar to include ALL default tools.
    • Update the tools to use activeState better.
    • Small update to allow use of ta-bind outside of textAngular.
    • Changed the raw html view to use a text-area for better compatability.

    2013-12-09 v1.1.2-pre2

    • Added input for form submission. #43
    • Slight restructure and update into of /demo.
    • Moved a lot of the README.md to the online Wiki. #34
    • Changed pre-release tag names to -preX as we aren't really doing alpha - beta - RC format.

    2013-12-05 v1.1.2-alpha (v1.1.2-pre1)

    • Added bundled demo pages.
    • Fixed Escaping of < and > #30
    • Fixed stripping of style and class attributes and other parsing issues whilst maintaining the chrome fixes. #35 #30 #5
    • Fixed two-way-binding not working #38
    • Updated Readme.md and consolidated the readme out of the textAngular.js file.

    2013-12-2 v1.1.1

    • Fixed buttons still submitting form. #29
    • Fix for Null ngModel value. Thanks to @slobo #22
    • Added Ability to override just "display" for default button set. Thanks to @slobo #27

    2013-11-9 v1.1.0

    • Re-written to only depend on Angular and Angular-Sanitize. No More jQuery.
    • Re-worked to be more angular-esq in it's initiation and use. Less reliance on global variables except for defaults and more use of bindings on attributes.
    • Default styles are Bootstrap 3 classes, options to change these classes.
    • Restructured the Toolbar to make it more plugin friendly, all tool buttons are encapsulated in their own scope that is a child of the individual textAngular bound scope.

    2013-11-6 v1.0.3

    • $sce isn't required anymore* Thanks to @nadeeshacabral
    • bower support added* Thanks to @edouard-lopez

    2013-10-11 v1.0.2

    • Fixed issue with images not calling the compileHTML method*
    • Fixed issue in chrome where styling was getting added for unordered lists*
    • You can now change the model from the outside and have it affect the textAngular instance contents*
    • Cleaned up code*

    2013-10-10 v1.0.1

    • Added Tooltip Option, title has been renamed icon, and title is now the tooltip*
    • The minified version actually works now*