diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 000000000..69fbc34fa --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "vendor/assets/components" +} diff --git a/app/assets/javascripts/app.js.erb b/app/assets/javascripts/app.js.erb index 6851ff3e9..f2215afae 100644 --- a/app/assets/javascripts/app.js.erb +++ b/app/assets/javascripts/app.js.erb @@ -18,7 +18,7 @@ angular.module('application', ['ngCookies', 'ngResource', 'ngSanitize', 'ngAnima 'ngUpload', 'duScroll', 'application.filters','application.services', 'application.directives', 'application.constants', 'application.controllers', 'application.router', 'ui.select2', 'angularMoment', 'Devise', 'DeviseModal', 'angular-growl', 'xeditable', 'checklist-model', 'unsavedChanges', 'angular-loading-bar', - 'ngTouch', 'angular-google-analytics', 'angularUtils.directives.dirDisqus', 'angular-redactor']). + 'ngTouch', 'angular-google-analytics', 'angularUtils.directives.dirDisqus', 'summernote']). config(['$locationProvider', '$httpProvider', 'AuthProvider', "growlProvider", "unsavedWarningsConfigProvider", "AnalyticsProvider", "datepickerPopupConfig", function($locationProvider, $httpProvider, AuthProvider, growlProvider, unsavedWarningsConfigProvider, AnalyticsProvider, datepickerPopupConfig) { @@ -67,6 +67,23 @@ config(['$locationProvider', '$httpProvider', 'AuthProvider', "growlProvider", " $state.go($state.prevState, $state.prevParams); }; + $rootScope.summernoteOpts = { + lang: 'fr-FR', + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'italic', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']], + ['insert', ['link', 'picture', 'hr']], + ['view', ['fullscreen', 'codeview']], + ['group', ['video']], + ['help', ['help']] + ], + styleTags: ['p', 'blockquote', 'pre', 'h4', 'h5', 'h6'], + maximumImageFileSize: 4096 + }; + }]).filter('array', function() { return function(arrayLength) { if (arrayLength) { diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 3ebf7de3d..2a275ace3 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -12,6 +12,7 @@ // //= require jquery //= require jquery_ujs +//= require bootstrap //= require jquery-ui/ui/jquery.ui.core //= require jquery-ui/ui/jquery.ui.widget //= require jquery-ui/ui/jquery.ui.mouse @@ -48,12 +49,14 @@ //= require angular-google-analytics/src/angular-google-analytics //= require dirDisqus //= require humanize -//= require redactor -//= require angular-redactor/angular-redactor //= require underscore/underscore //= require app //= require router //= require_tree ./controllers //= require_tree ./services //= require_tree ./directives -//= require_tree ./filters \ No newline at end of file +//= require_tree ./filters +//= require summernote/dist/summernote +//= require summernote/lang/summernote-fr-FR +//= require summernote/plugin/summernote-ext-video +//= require angular-summernote/dist/angular-summernote diff --git a/app/assets/stylesheets/app.plugins.scss b/app/assets/stylesheets/app.plugins.scss index fde197caf..181037edf 100644 --- a/app/assets/stylesheets/app.plugins.scss +++ b/app/assets/stylesheets/app.plugins.scss @@ -1,9 +1,3 @@ -// Redactor - -.redactor_editor, .redactor_editor:focus { - height: 200px; -} - // Growl .growl { @@ -24,7 +18,7 @@ .select2-search-choice { @extend .label; padding-left: .9em; - font-size: 100%; + font-size: 100%; font-weight: normal; } @@ -130,7 +124,7 @@ } &:hover { color: $yellow; } } - + } } &.slider-actu { @@ -254,12 +248,12 @@ } &:hover { color: $yellow; } } - + } .home { - .nav-branding { - display: none; + .nav-branding { + display: none; } } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 1b934e5fa..014cf9206 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -4,11 +4,13 @@ *= require jasny-bootstrap/dist/css/jasny-bootstrap *= require angular-growl/build/angular-growl.min.css *= require angular-xeditable/dist/css/xeditable - *= require redactor *= require angular-loading-bar/src/loading-bar *= require font-awesome + *= require summernote/dist/summernote */ + + @import "app.functions"; @import "compass"; @import "bootstrap_and_overrides"; diff --git a/app/assets/templates/projects/_form.html.erb b/app/assets/templates/projects/_form.html.erb index fef526d07..bf2e3e000 100644 --- a/app/assets/templates/projects/_form.html.erb +++ b/app/assets/templates/projects/_form.html.erb @@ -2,7 +2,7 @@
-
+
{{alert.msg}} @@ -62,7 +62,8 @@
- + + Description est obligatoire
@@ -76,8 +77,11 @@ Étape {{ $index+1 }}/{{project.project_steps_attributes.length}} - - + + + +
Ajouter une imageModifier l'image @@ -101,7 +105,7 @@
- +

Tags

@@ -183,6 +187,6 @@
-
+
- \ No newline at end of file + diff --git a/bower.json b/bower.json index 967fd791f..ffe018659 100644 --- a/bower.json +++ b/bower.json @@ -30,9 +30,10 @@ "angular-scroll": "~0.6.5", "angular-google-analytics": "~0.0.3", "underscore": "~1.7.0", - "angular-redactor": "~1.0.0", "angular-devise": "~1.0.2", - "angular-i18n": "~1.3.15" + "angular-i18n": "~1.3.15", + "summernote": "~0.6.6", + "angular-summernote": "~0.3.2" }, "resolutions": { "jquery": ">=1.10.2", diff --git a/vendor/assets/components/angular-redactor/.bower.json b/vendor/assets/components/angular-redactor/.bower.json deleted file mode 100644 index 40416477a..000000000 --- a/vendor/assets/components/angular-redactor/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "angular-redactor", - "main": "angular-redactor.js", - "version": "1.0.0", - "homepage": "https://github.com/TylerGarlick/angular-redactor", - "authors": [ - "Tyler Garlick " - ], - "description": "Directive for redactor WYSIWYG editor", - "keywords": [ - "Redactor", - "WYSIWYG", - "Angular", - "Directives", - "Html5 Editor" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "demo", - "node_modules", - "bower_components", - "test", - "tests" - ], - "dependencies": { - "jquery": ">=2.0.0", - "angular": ">=1.2.0" - }, - "_release": "1.0.0", - "_resolution": { - "type": "version", - "tag": "v1.0.0", - "commit": "e453c5977bd29fb7df62cc5cfd88081cac37165c" - }, - "_source": "git://github.com/TylerGarlick/angular-redactor.git", - "_target": "~1.0.0", - "_originalSource": "angular-redactor", - "_direct": true -} \ No newline at end of file diff --git a/vendor/assets/components/angular-redactor/LICENSE.md b/vendor/assets/components/angular-redactor/LICENSE.md deleted file mode 100644 index 8ec4681d4..000000000 --- a/vendor/assets/components/angular-redactor/LICENSE.md +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) {{year}} {{fullname}} - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/assets/components/angular-redactor/README.md b/vendor/assets/components/angular-redactor/README.md deleted file mode 100644 index 02f0c0b88..000000000 --- a/vendor/assets/components/angular-redactor/README.md +++ /dev/null @@ -1,44 +0,0 @@ -angular-redactor -================ - -Angular Redactor is an angular directive for the Redactor editor. http://imperavi.com/redactor/ - - -Usage --------------- - -1. Include the redactor libraries -2. In your angular application register angular-redactor as a dependency. -3. Add the necessary html to view the editor. - -Registration - -```js - -// Angular Registration -angular.module('app', ['angular-redactor']); - -``` - -Bare Minimum Html -```html - -``` - -With Options -```html - -``` - -You can pass options directly to Redactor by specifying them as the value of the `redactor` attribute. - - -Check out the demo folder where you can see a working example. https://github.com/TylerGarlick/angular-redactor/tree/master/demo - - - -Bower Installation --------------- -```js -bower install angular-redactor -``` diff --git a/vendor/assets/components/angular-redactor/angular-redactor.js b/vendor/assets/components/angular-redactor/angular-redactor.js deleted file mode 100644 index caac80b20..000000000 --- a/vendor/assets/components/angular-redactor/angular-redactor.js +++ /dev/null @@ -1,51 +0,0 @@ -(function () { - 'use strict'; - - /** - * usage: - * - * additional options: - * redactor: hash (pass in a redactor options hash) - * - */ - angular.module('angular-redactor', []) - .directive("redactor", ['$timeout', function ($timeout) { - return { - restrict: 'A', - require: "ngModel", - link: function (scope, element, attrs, ngModel) { - - var updateModel = function updateModel(value) { - scope.$apply(function () { - ngModel.$setViewValue(value); - }); - }, - options = { - changeCallback: updateModel - }, - additionalOptions = attrs.redactor ? - scope.$eval(attrs.redactor) : {}, - editor, - $_element = angular.element(element); - - angular.extend(options, additionalOptions); - - // put in timeout to avoid $digest collision. call render() to - // set the initial value. - $timeout(function () { - editor = $_element.redactor(options); - ngModel.$render(); - }); - - ngModel.$render = function () { - if (angular.isDefined(editor)) { - $timeout(function() { - $_element.redactor('set', ngModel.$viewValue || ''); - }); - } - }; - } - }; - }]); -})(); - diff --git a/vendor/assets/components/angular-redactor/bower.json b/vendor/assets/components/angular-redactor/bower.json deleted file mode 100644 index 62b10a3b4..000000000 --- a/vendor/assets/components/angular-redactor/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "angular-redactor", - "main": "angular-redactor.js", - "version": "1.0.0", - "homepage": "https://github.com/TylerGarlick/angular-redactor", - "authors": [ - "Tyler Garlick " - ], - "description": "Directive for redactor WYSIWYG editor", - "keywords": [ - "Redactor", - "WYSIWYG", - "Angular", - "Directives", - "Html5 Editor" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "demo", - "node_modules", - "bower_components", - "test", - "tests" - ], - "dependencies": { - "jquery": ">=2.0.0", - "angular": ">=1.2.0" - } -} diff --git a/vendor/assets/components/angular-summernote/.bower.json b/vendor/assets/components/angular-summernote/.bower.json new file mode 100644 index 000000000..d6b0c9943 --- /dev/null +++ b/vendor/assets/components/angular-summernote/.bower.json @@ -0,0 +1,60 @@ +{ + "name": "angular-summernote", + "description": "AngularJS directive to Summernote", + "version": "0.3.2", + "main": [ + "./dist/angular-summernote.js" + ], + "license": "MIT", + "ignore": [ + "node_modules/", + "examples/", + "test/", + "Gruntfile.js", + "karma.conf.js", + "package.json", + ".travis.yml", + ".jshintrc", + ".gitignore", + ".editorconfig", + ".bowerrc", + ".coveralls.yml" + ], + "keywords": [ + "angular.js", + "summernote", + "editor", + "directive" + ], + "authors": [ + { + "name": "\"Outsider\" Jeonghoon Byun", + "email": "outsideris@gmail.com", + "url": "http://blog.outsider.ne.kr/" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/summernote/angular-summernote.git" + }, + "dependencies": { + "summernote": "~0.6.0", + "angular": "~1.3.0" + }, + "devDependencies": { + "angular-1.2": "https://raw.githubusercontent.com/angular/bower-angular/v1.2.26/angular.min.js", + "chai": "~1.10.0", + "angular-mocks": "~1.3.0", + "angular-mocks-1.2": "https://raw.githubusercontent.com/angular/bower-angular-mocks/v1.2.26/angular-mocks.js" + }, + "homepage": "https://github.com/summernote/angular-summernote", + "_release": "0.3.2", + "_resolution": { + "type": "version", + "tag": "0.3.2", + "commit": "0e329e681879af08bea0c776e227b53fb81c8657" + }, + "_source": "git://github.com/summernote/angular-summernote.git", + "_target": "~0.3.2", + "_originalSource": "angular-summernote" +} \ No newline at end of file diff --git a/vendor/assets/components/angular-summernote/CHANGELOG.md b/vendor/assets/components/angular-summernote/CHANGELOG.md new file mode 100644 index 000000000..0c90e9ab7 --- /dev/null +++ b/vendor/assets/components/angular-summernote/CHANGELOG.md @@ -0,0 +1,89 @@ +# 0.3.2 (2015-02-13) +* bug fixes + * fix to avoid inprog error with outer scope + [#34](https://github.com/summernote/angular-summernote/pull/34)) + +# 0.3.1 (2014-12-25) +* summernote organization maintains angular-summernote now. +* Upgrade summernote to [v0.6.0](https://github.com/summernote/summernote/releases/tag/v0.6.0) +* bug fixes + * fix Referencing a DOM node in Expression Error(see + [#25](https://github.com/summernote/angular-summernote/issues/25)) + +# 0.3.0 (2014-10-19) +Support [AngularJS 1.3.0](http://angularjs.blogspot.kr/2014/10/angularjs-130-superluminal-nudge.html) +* bug fixes + ([#20](https://github.com/summernote/angular-summernote/issues/20)) + +# 0.2.4 (2014-10-04) +* bug fixes + ([#19](https://github.com/summernote/angular-summernote/issues/19)) + +# 0.2.3 (2014-09-04) +* update with [summernote v0.5.8](https://github.com/HackerWins/summernote/releases/tag/v0.5.8) +* add `onChange` event +* support airmode + +## Bug fixes + +* ngModel is synchronized with insert images + ([#15](https://github.com/summernote/angular-summernote/issues/15)) + +# 0.2.2 (2014-05-11) + +* update with [summernote v0.5.1](https://github.com/HackerWins/summernote/releases/tag/v0.5.1) +* add `onPaste` event + +## Bug Fixes + +* ngModel is synchronized when summernote's codeview mode is enabled. + ([#7](https://github.com/summernote/angular-summernote/issues/7)) + +# 0.2.1 (2014-02-23) + +## Bug Fixes + +* ngModel is syncronized when text is changed using toolbar + ([#4](https://github.com/summernote/angular-summernote/issues/4)) + +# 0.2.0 (2014-01-26) + +This release adds `ngModel` support + +## Features + +* support `ngModel` attribute(`code` attribute is removed) + +## Breaking Changes + +* use `ngModel` attribute instead `code` attribute for 2-ways binding. + + To migrate your code change your markup like below. + + Before: + +```html + +``` + + After: + +```html + +``` + +# 0.1.1 (2014-01-18) + +_Very first, initial release_. + +## Features + +`summernote` direcive was released with the following directives: + +* `summernote` directive +* `height` and `focus` attributes +* `config` attribute +* `code` attribute +* `on-init`, `on-enter`, `on-foucs`, `on-blur`, `on-keyup`, + `on-keydown` and `on-image-upload` attributes for event listeners +* `lang` attribute for i18n diff --git a/vendor/assets/components/angular-summernote/LICENSE-MIT b/vendor/assets/components/angular-summernote/LICENSE-MIT new file mode 100644 index 000000000..d0d6a15e5 --- /dev/null +++ b/vendor/assets/components/angular-summernote/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) 2014 "Outsider" Jeonghoon Byun + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/assets/components/angular-summernote/README.md b/vendor/assets/components/angular-summernote/README.md new file mode 100644 index 000000000..3f0f84dac --- /dev/null +++ b/vendor/assets/components/angular-summernote/README.md @@ -0,0 +1,216 @@ +# angular-summernote - [AngularJS](http://angularjs.org/) directive to [Summernote](http://summernote.org/) + +*** + +[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/) +[![Build Status](https://travis-ci.org/summernote/angular-summernote.png?branch=master)](https://travis-ci.org/summernote/angular-summernote) +[![Dependency Status](https://gemnasium.com/summernote/angular-summernote.png)](https://gemnasium.com/summernote/angular-summernote) +[![Coverage Status](https://coveralls.io/repos/summernote/angular-summernote/badge.png)](https://coveralls.io/r/summernote/angular-summernote) + +angular-summernote is just a directive to bind summmernote's all features. +You can use summernote with angular way. + +## Table of Contents + +- [Demo](#demo) +- [Installation](#Installation) +- [How To Use](#how-to-use) + - [summernote directive](summernote-directive) + - [Options](#options) + - [ngModel](#ngmodel) + - [Event Listeners](#event-listeners) + - [i18n Support](#i18n-support) +- [FAQ](#faq) +- [Change Logs](#change-logs) + +## Demo + +See at [JSFiddle](http://jsfiddle.net/outsider/n8dt4/158/embedded/result%2Chtml%2Cjs%2Ccss/) +or run example in projects(need to run `bower install` before run) + +## Installation + +angular-summernote requires all include files of [Summernote](http://summernote.org/). +see [Summernote's installation](http://summernote.org/#/features#installation). + +Project files are also available through your favourite package manager: + +* Bower: `bower install angular-summernote` + +## How To Use + +When you are done downloading all the dependencies and project files the only remaining part is to add dependencies on the ui.bootstrap AngularJS module: + +When you've inclued all js and css files you need to inject `a` into your angular application: + +```javascript +angular.module('myApp', ['summernote']); +``` + +### `summernote` Directive + +You can use `summernote` directive where you want to use summernote editor. +And when the scope is destroyed the directive will be destroyed. + +#### As element: + +```html + +``` +#### As attribute: + +```html +
+``` + +It will be initialized automatically. + +### Options + +summernote's options can be specified as attributes. + +#### height + +```html + +``` + +#### focus + +```html + +``` + +#### airmode +```html + +``` + +#### options object + +You can specify all options using ngModel in `config` attribute. + +```html + +``` + +```javascript +function DemoController($scope) { + $scope.options = { + height: 300, + focus: true, + airMode: true, + toolbar: [ + ['edit',['undo','redo']], + ['headline', ['style']], + ['style', ['bold', 'italic', 'underline', 'superscript', 'subscript', 'strikethrough', 'clear']], + ['fontface', ['fontname']], + ['textsize', ['fontsize']], + ['fontclr', ['color']], + ['alignment', ['ul', 'ol', 'paragraph', 'lineheight']], + ['height', ['height']], + ['table', ['table']], + ['insert', ['link','picture','video','hr']], + ['view', ['fullscreen', 'codeview']], + ['help', ['help']] + ] + }; +} +``` + +NOTE: `height` and `focus` attributes have high priority than options object. + +NOTE: custom toolbar can be set by options object. + +### ngModel + +summernote's `code`, that is HTML string in summernote. +If you specify ngModel it will be 2-ways binding +to HTML string in summernote. Otherwise `angular-summernote` simply ignore it. + +```html + +``` + +```javascript +function DemoController($scope) { + $scope.text = "Hello World"; +} +``` + +### Event Listeners + +event listeners can be registered as attribute as you want. + +```javascript +function DemoController($scope) { + $scope.init = function() { console.log('Summernote is launched'); } + $scope.enter = function() { console.log('Enter/Return key pressed'); } + $scope.focus = function(e) { console.log('Editable area is focused'); } + $scope.blur = function(e) { console.log('Editable area loses focus'); } + $scope.paste = function(e) { console.log('Called event paste'); } + $scope.change = function(contents) { + console.log('contents are changed:', contents, $scope.editable); + }; + $scope.keyup = function(e) { console.log('Key is released:', e.keyCode); } + $scope.keydown = function(e) { console.log('Key is pressed:', e.keyCode); } + $scope.imageUpload = function(files, editor) { + console.log('image upload:', files, editor); + console.log('image upload\'s editable:', $scope.editable); + } +} +``` + +```html + + +``` + +If you use `$editable` object in `onImageUpload` or `onChange` +(see [summernote's callback](http://summernote.org/#/features#callbacks)), +you should defined `editable` attribute and use it in `$scope`. +(Because [AngularJS 1.3.x restricts access to DOM nodes from within expressions](https://docs.angularjs.org/error/$parse/isecdom)) + +### i18n Support + +If you use i18n, you have to include language files. +See [summernote's document](http://summernote.org/#/features#i18n) +for more details. +And then you can specify language like: + +```html + +``` + +## FAQ + +- __How to solve compatibility problem with AngularUI Bootstrap?__ + +[AngularUI Bootstrap](http://angular-ui.github.io/bootstrap/) module is +written to replace the JavaScript file for bootstrap with its own +implementation (`ui-bootstrap-tpls.min.js`). + +Summernote was intended to work with Bootstrap, so the coder implemented +features that rely on the `bootstrap.js` file being present. + +* If you do not include `bootstrap.js`, summernote throws exceptions. +* If you do not include `ui-bootstrap-tpls.min.js`, your angular directives + for bootstrap will not work. +* If you include both, then both JavaScript files try to listen on various + events, and otherwise may have incompatibility issues. + +If you have a drop down in the navbar, and use `data-dropdown` directive +as bootstrap says to, then two clicks are required to open +the drop down (menu) instead of the expected one click. + +The solution is to not use `data-dropdown` directive. However, the +real solution is for summernote to be agnostic about which of +`bootstrap.js` or `ui-bootstrap-tpls.min.js` are loaded and make the right calls. +(see [#21](https://github.com/summernote/angular-summernote/issues/21)) + +## Change Logs + +See [here](https://github.com/summernote/angular-summernote/blob/master/CHANGELOG.md). diff --git a/vendor/assets/components/angular-summernote/bower.json b/vendor/assets/components/angular-summernote/bower.json new file mode 100644 index 000000000..011fa0ddd --- /dev/null +++ b/vendor/assets/components/angular-summernote/bower.json @@ -0,0 +1,45 @@ +{ + "name": "angular-summernote", + "description": "AngularJS directive to Summernote", + "version": "0.3.2", + "main": [ + "./dist/angular-summernote.js" + ], + "license": "MIT", + "ignore": [ + "node_modules/", + "examples/", + "test/", + "Gruntfile.js", + "karma.conf.js", + "package.json", + ".travis.yml", + ".jshintrc", + ".gitignore", + ".editorconfig", + ".bowerrc", + ".coveralls.yml" + ], + "keywords": ["angular.js", "summernote", "editor", "directive"], + "authors": [ + { + "name": "\"Outsider\" Jeonghoon Byun", + "email": "outsideris@gmail.com", + "url": "http://blog.outsider.ne.kr/" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/summernote/angular-summernote.git" + }, + "dependencies": { + "summernote": "~0.6.0", + "angular": "~1.3.0" + }, + "devDependencies": { + "angular-1.2": "https://raw.githubusercontent.com/angular/bower-angular/v1.2.26/angular.min.js", + "chai": "~1.10.0", + "angular-mocks": "~1.3.0", + "angular-mocks-1.2": "https://raw.githubusercontent.com/angular/bower-angular-mocks/v1.2.26/angular-mocks.js" + } +} diff --git a/vendor/assets/components/angular-summernote/dist/angular-summernote.js b/vendor/assets/components/angular-summernote/dist/angular-summernote.js new file mode 100644 index 000000000..a7f552f21 --- /dev/null +++ b/vendor/assets/components/angular-summernote/dist/angular-summernote.js @@ -0,0 +1,134 @@ +/** + * Copyright (c) 2013 JeongHoon Byun aka "Outsider", + * Licensed under the MIT license. + * + */ +/* global angular */ +angular.module('summernote', []) + + .controller('SummernoteController', ['$scope', '$attrs', '$timeout', function($scope, $attrs, $timeout) { + 'use strict'; + + var currentElement, + summernoteConfig = $scope.summernoteConfig || {}; + + if (angular.isDefined($attrs.height)) { summernoteConfig.height = $attrs.height; } + if (angular.isDefined($attrs.focus)) { summernoteConfig.focus = true; } + if (angular.isDefined($attrs.airmode)) { summernoteConfig.airMode = true; } + if (angular.isDefined($attrs.lang)) { + if (!angular.isDefined($.summernote.lang[$attrs.lang])) { + throw new Error('"' + $attrs.lang + '" lang file must be exist.'); + } + summernoteConfig.lang = $attrs.lang; + } + + summernoteConfig.oninit = $scope.init; + summernoteConfig.onenter = function(evt) { $scope.enter({evt:evt}); }; + summernoteConfig.onfocus = function(evt) { $scope.focus({evt:evt}); }; + summernoteConfig.onblur = function(evt) { $scope.blur({evt:evt}); }; + summernoteConfig.onpaste = function(evt) { $scope.paste({evt:evt}); }; + summernoteConfig.onkeyup = function(evt) { $scope.keyup({evt:evt}); }; + summernoteConfig.onkeydown = function(evt) { $scope.keydown({evt:evt}); }; + if (angular.isDefined($attrs.onImageUpload)) { + summernoteConfig.onImageUpload = function(files, editor) { + $scope.imageUpload({files:files, editor:editor, editable: $scope.editable}); + }; + } + + this.activate = function(scope, element, ngModel) { + var updateNgModel = function() { + var newValue = element.code(); + if (ngModel && ngModel.$viewValue !== newValue) { + $timeout(function() { + ngModel.$setViewValue(newValue); + }, 0); + } + }; + + summernoteConfig.onChange = function(contents) { + updateNgModel(); + $scope.change({contents:contents, editable: $scope.editable}); + }; + + element.summernote(summernoteConfig); + + var editor$ = element.next('.note-editor'), + unwatchNgModel; + editor$.find('.note-toolbar').click(function() { + updateNgModel(); + + // sync ngModel in codeview mode + if (editor$.hasClass('codeview')) { + editor$.on('keyup', updateNgModel); + if (ngModel) { + unwatchNgModel = scope.$watch(function () { + return ngModel.$modelValue; + }, function(newValue) { + editor$.find('.note-codable').val(newValue); + }); + } + } else { + editor$.off('keyup', updateNgModel); + if (angular.isFunction(unwatchNgModel)) { + unwatchNgModel(); + } + } + }); + + if (ngModel) { + ngModel.$render = function() { + element.code(ngModel.$viewValue || ''); + }; + } + + // set editable to avoid error:isecdom since Angular v1.3 + if (angular.isDefined($attrs.editable)) { + $scope.editable = editor$.find('.note-editable'); + } + + currentElement = element; + // use jquery Event binding instead $on('$destroy') to preserve options data of DOM + element.on('$destroy', function() { + element.destroy(); + $scope.summernoteDestroyed = true; + }); + }; + + $scope.$on('$destroy', function () { + // when destroying scope directly + if (!$scope.summernoteDestroyed) { + currentElement.destroy(); + } + }); + }]) + .directive('summernote', [function() { + 'use strict'; + + return { + restrict: 'EA', + transclude: true, + replace: true, + require: ['summernote', '^?ngModel'], + controller: 'SummernoteController', + scope: { + summernoteConfig: '=config', + editable: '=', + init: '&onInit', + enter: '&onEnter', + focus: '&onFocus', + blur: '&onBlur', + paste: '&onPaste', + keyup: '&onKeyup', + keydown: '&onKeydown', + change: '&onChange', + imageUpload: '&onImageUpload' + }, + template: '
', + link: function(scope, element, attrs, ctrls) { + var summernoteController = ctrls[0], + ngModel = ctrls[1]; + + summernoteController.activate(scope, element, ngModel); + } + }; + }]); diff --git a/vendor/assets/components/angular-summernote/dist/angular-summernote.min.js b/vendor/assets/components/angular-summernote/dist/angular-summernote.min.js new file mode 100644 index 000000000..f9f74a658 --- /dev/null +++ b/vendor/assets/components/angular-summernote/dist/angular-summernote.min.js @@ -0,0 +1,6 @@ +/* + angular-summernote v0.3.2 + Copyright 2014 Jeonghoon Byun + License: MIT + */ +angular.module("summernote",[]).controller("SummernoteController",["$scope","$attrs","$timeout",function($scope,$attrs,$timeout){"use strict";var currentElement,summernoteConfig=$scope.summernoteConfig||{};if(angular.isDefined($attrs.height)&&(summernoteConfig.height=$attrs.height),angular.isDefined($attrs.focus)&&(summernoteConfig.focus=!0),angular.isDefined($attrs.airmode)&&(summernoteConfig.airMode=!0),angular.isDefined($attrs.lang)){if(!angular.isDefined($.summernote.lang[$attrs.lang]))throw new Error('"'+$attrs.lang+'" lang file must be exist.');summernoteConfig.lang=$attrs.lang}summernoteConfig.oninit=$scope.init,summernoteConfig.onenter=function(evt){$scope.enter({evt:evt})},summernoteConfig.onfocus=function(evt){$scope.focus({evt:evt})},summernoteConfig.onblur=function(evt){$scope.blur({evt:evt})},summernoteConfig.onpaste=function(evt){$scope.paste({evt:evt})},summernoteConfig.onkeyup=function(evt){$scope.keyup({evt:evt})},summernoteConfig.onkeydown=function(evt){$scope.keydown({evt:evt})},angular.isDefined($attrs.onImageUpload)&&(summernoteConfig.onImageUpload=function(files,editor){$scope.imageUpload({files:files,editor:editor,editable:$scope.editable})}),this.activate=function(scope,element,ngModel){var updateNgModel=function(){var newValue=element.code();ngModel&&ngModel.$viewValue!==newValue&&$timeout(function(){ngModel.$setViewValue(newValue)},0)};summernoteConfig.onChange=function(contents){updateNgModel(),$scope.change({contents:contents,editable:$scope.editable})},element.summernote(summernoteConfig);var unwatchNgModel,editor$=element.next(".note-editor");editor$.find(".note-toolbar").click(function(){updateNgModel(),editor$.hasClass("codeview")?(editor$.on("keyup",updateNgModel),ngModel&&(unwatchNgModel=scope.$watch(function(){return ngModel.$modelValue},function(newValue){editor$.find(".note-codable").val(newValue)}))):(editor$.off("keyup",updateNgModel),angular.isFunction(unwatchNgModel)&&unwatchNgModel())}),ngModel&&(ngModel.$render=function(){element.code(ngModel.$viewValue||"")}),angular.isDefined($attrs.editable)&&($scope.editable=editor$.find(".note-editable")),currentElement=element,element.on("$destroy",function(){element.destroy(),$scope.summernoteDestroyed=!0})},$scope.$on("$destroy",function(){$scope.summernoteDestroyed||currentElement.destroy()})}]).directive("summernote",[function(){"use strict";return{restrict:"EA",transclude:!0,replace:!0,require:["summernote","^?ngModel"],controller:"SummernoteController",scope:{summernoteConfig:"=config",editable:"=",init:"&onInit",enter:"&onEnter",focus:"&onFocus",blur:"&onBlur",paste:"&onPaste",keyup:"&onKeyup",keydown:"&onKeydown",change:"&onChange",imageUpload:"&onImageUpload"},template:'
',link:function(scope,element,attrs,ctrls){var summernoteController=ctrls[0],ngModel=ctrls[1];summernoteController.activate(scope,element,ngModel)}}}]); \ No newline at end of file diff --git a/vendor/assets/components/angular-summernote/src/angular-summernote.js b/vendor/assets/components/angular-summernote/src/angular-summernote.js new file mode 100644 index 000000000..a7f552f21 --- /dev/null +++ b/vendor/assets/components/angular-summernote/src/angular-summernote.js @@ -0,0 +1,134 @@ +/** + * Copyright (c) 2013 JeongHoon Byun aka "Outsider", + * Licensed under the MIT license. + * + */ +/* global angular */ +angular.module('summernote', []) + + .controller('SummernoteController', ['$scope', '$attrs', '$timeout', function($scope, $attrs, $timeout) { + 'use strict'; + + var currentElement, + summernoteConfig = $scope.summernoteConfig || {}; + + if (angular.isDefined($attrs.height)) { summernoteConfig.height = $attrs.height; } + if (angular.isDefined($attrs.focus)) { summernoteConfig.focus = true; } + if (angular.isDefined($attrs.airmode)) { summernoteConfig.airMode = true; } + if (angular.isDefined($attrs.lang)) { + if (!angular.isDefined($.summernote.lang[$attrs.lang])) { + throw new Error('"' + $attrs.lang + '" lang file must be exist.'); + } + summernoteConfig.lang = $attrs.lang; + } + + summernoteConfig.oninit = $scope.init; + summernoteConfig.onenter = function(evt) { $scope.enter({evt:evt}); }; + summernoteConfig.onfocus = function(evt) { $scope.focus({evt:evt}); }; + summernoteConfig.onblur = function(evt) { $scope.blur({evt:evt}); }; + summernoteConfig.onpaste = function(evt) { $scope.paste({evt:evt}); }; + summernoteConfig.onkeyup = function(evt) { $scope.keyup({evt:evt}); }; + summernoteConfig.onkeydown = function(evt) { $scope.keydown({evt:evt}); }; + if (angular.isDefined($attrs.onImageUpload)) { + summernoteConfig.onImageUpload = function(files, editor) { + $scope.imageUpload({files:files, editor:editor, editable: $scope.editable}); + }; + } + + this.activate = function(scope, element, ngModel) { + var updateNgModel = function() { + var newValue = element.code(); + if (ngModel && ngModel.$viewValue !== newValue) { + $timeout(function() { + ngModel.$setViewValue(newValue); + }, 0); + } + }; + + summernoteConfig.onChange = function(contents) { + updateNgModel(); + $scope.change({contents:contents, editable: $scope.editable}); + }; + + element.summernote(summernoteConfig); + + var editor$ = element.next('.note-editor'), + unwatchNgModel; + editor$.find('.note-toolbar').click(function() { + updateNgModel(); + + // sync ngModel in codeview mode + if (editor$.hasClass('codeview')) { + editor$.on('keyup', updateNgModel); + if (ngModel) { + unwatchNgModel = scope.$watch(function () { + return ngModel.$modelValue; + }, function(newValue) { + editor$.find('.note-codable').val(newValue); + }); + } + } else { + editor$.off('keyup', updateNgModel); + if (angular.isFunction(unwatchNgModel)) { + unwatchNgModel(); + } + } + }); + + if (ngModel) { + ngModel.$render = function() { + element.code(ngModel.$viewValue || ''); + }; + } + + // set editable to avoid error:isecdom since Angular v1.3 + if (angular.isDefined($attrs.editable)) { + $scope.editable = editor$.find('.note-editable'); + } + + currentElement = element; + // use jquery Event binding instead $on('$destroy') to preserve options data of DOM + element.on('$destroy', function() { + element.destroy(); + $scope.summernoteDestroyed = true; + }); + }; + + $scope.$on('$destroy', function () { + // when destroying scope directly + if (!$scope.summernoteDestroyed) { + currentElement.destroy(); + } + }); + }]) + .directive('summernote', [function() { + 'use strict'; + + return { + restrict: 'EA', + transclude: true, + replace: true, + require: ['summernote', '^?ngModel'], + controller: 'SummernoteController', + scope: { + summernoteConfig: '=config', + editable: '=', + init: '&onInit', + enter: '&onEnter', + focus: '&onFocus', + blur: '&onBlur', + paste: '&onPaste', + keyup: '&onKeyup', + keydown: '&onKeydown', + change: '&onChange', + imageUpload: '&onImageUpload' + }, + template: '
', + link: function(scope, element, attrs, ctrls) { + var summernoteController = ctrls[0], + ngModel = ctrls[1]; + + summernoteController.activate(scope, element, ngModel); + } + }; + }]); diff --git a/vendor/assets/components/font-awesome/.bower.json b/vendor/assets/components/font-awesome/.bower.json new file mode 100644 index 000000000..ffdf8da82 --- /dev/null +++ b/vendor/assets/components/font-awesome/.bower.json @@ -0,0 +1,36 @@ +{ + "name": "font-awesome", + "description": "Font Awesome", + "version": "4.3.0", + "keywords": [], + "homepage": "http://fontawesome.io", + "dependencies": {}, + "devDependencies": {}, + "license": [ + "OFL-1.1", + "MIT", + "CC-BY-3.0" + ], + "main": [ + "./css/font-awesome.css", + "./fonts/*" + ], + "ignore": [ + "*/.*", + "*.json", + "src", + "*.yml", + "Gemfile", + "Gemfile.lock", + "*.md" + ], + "_release": "4.3.0", + "_resolution": { + "type": "version", + "tag": "v4.3.0", + "commit": "e9665bad5b5b944da1095faf88209fabbfe725c1" + }, + "_source": "git://github.com/FortAwesome/Font-Awesome.git", + "_target": ">=4.2.0", + "_originalSource": "font-awesome" +} \ No newline at end of file diff --git a/vendor/assets/components/font-awesome/.gitignore b/vendor/assets/components/font-awesome/.gitignore new file mode 100644 index 000000000..39c4f20b7 --- /dev/null +++ b/vendor/assets/components/font-awesome/.gitignore @@ -0,0 +1,33 @@ +*.pyc +*.egg-info +*.db +*.db.old +*.swp +*.db-journal + +.coverage +.DS_Store +.installed.cfg +_gh_pages/* + +.idea/* +.svn/* +src/website/static/* +src/website/media/* + +bin +cfcache +develop-eggs +dist +downloads +eggs +parts +tmp +.sass-cache +node_modules + +src/website/settingslocal.py +stunnel.log + +.ruby-version +.bundle diff --git a/vendor/assets/components/font-awesome/.npmignore b/vendor/assets/components/font-awesome/.npmignore new file mode 100644 index 000000000..54a691f81 --- /dev/null +++ b/vendor/assets/components/font-awesome/.npmignore @@ -0,0 +1,42 @@ +*.pyc +*.egg-info +*.db +*.db.old +*.swp +*.db-journal + +.coverage +.DS_Store +.installed.cfg +_gh_pages/* + +.idea/* +.svn/* +src/website/static/* +src/website/media/* + +bin +cfcache +develop-eggs +dist +downloads +eggs +parts +tmp +.sass-cache +node_modules + +src/website/settingslocal.py +stunnel.log + +.ruby-version + +# don't need these in the npm package. +src/ +_config.yml +bower.json +component.json +composer.json +CONTRIBUTING.md +Gemfile +Gemfile.lock diff --git a/vendor/assets/components/font-awesome/bower.json b/vendor/assets/components/font-awesome/bower.json new file mode 100644 index 000000000..716617e01 --- /dev/null +++ b/vendor/assets/components/font-awesome/bower.json @@ -0,0 +1,23 @@ +{ + "name": "font-awesome", + "description": "Font Awesome", + "version": "4.3.0", + "keywords": [], + "homepage": "http://fontawesome.io", + "dependencies": {}, + "devDependencies": {}, + "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], + "main": [ + "./css/font-awesome.css", + "./fonts/*" + ], + "ignore": [ + "*/.*", + "*.json", + "src", + "*.yml", + "Gemfile", + "Gemfile.lock", + "*.md" + ] +} diff --git a/vendor/assets/components/font-awesome/css/font-awesome.css b/vendor/assets/components/font-awesome/css/font-awesome.css new file mode 100644 index 000000000..2dcdc2207 --- /dev/null +++ b/vendor/assets/components/font-awesome/css/font-awesome.css @@ -0,0 +1,1801 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.3.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-genderless:before, +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} diff --git a/vendor/assets/components/font-awesome/css/font-awesome.css.map b/vendor/assets/components/font-awesome/css/font-awesome.css.map new file mode 100644 index 000000000..60763a864 --- /dev/null +++ b/vendor/assets/components/font-awesome/css/font-awesome.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": ";;;;;;;AAGA,UAUC;EATC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,ySAAmG;EAKxG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;ACTpB,GAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAAwD;EAC9D,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,SAAS,EAAE,eAAe;;;ACN5B,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECKU,SAAS;EDJ9B,eAAe,EAAE,IAAI;EACrB,WAAK;IAAE,QAAQ,EAAE,QAAQ;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECFgB,SAAS;EDG9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;EAClB,YAAuB;IACrB,IAAI,EAAE,UAA0B;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;AAGrB,WAAY;EAAE,KAAK,EAAE,KAAK;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;AAGtB,aAAY;EAAE,YAAY,EAAE,IAAI;AAChC,cAAa;EAAE,WAAW,EAAE,IAAI;;ACXlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AC5BrC,aAA8B;ECY5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;ADdrC,cAA8B;ECW5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADbrC,cAA8B;ECU5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADXrC,mBAAmC;ECejC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADjBzC,iBAAmC;ECcjC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADZzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;AAC5C,WAA2B;EAAE,KAAK,ELVZ,IAAI;;;;AMN1B,gBAAgC;EAAE,OAAO,ENoQ1B,GAAO;;AMnQtB,gBAAgC;EAAE,OAAO,EN0W1B,GAAO;;AMzWtB,iBAAiC;EAAE,OAAO,ENmb1B,GAAO;;AMlbvB,qBAAqC;EAAE,OAAO,ENmL1B,GAAO;;AMlL3B,gBAAgC;EAAE,OAAO,ENkR1B,GAAO;;AMjRtB,eAA+B;EAAE,OAAO,ENke1B,GAAO;;AMjerB,iBAAiC;EAAE,OAAO,ENse1B,GAAO;;AMrevB,eAA+B;EAAE,OAAO,EN+iB1B,GAAO;;AM9iBrB,eAA+B;EAAE,OAAO,ENyN1B,GAAO;;AMxNrB,mBAAmC;EAAE,OAAO,ENggB1B,GAAO;;AM/fzB,aAA6B;EAAE,OAAO,EN8f1B,GAAO;;AM7fnB,kBAAkC;EAAE,OAAO,EN+f1B,GAAO;;AM9fxB,gBAAgC;EAAE,OAAO,ENoG1B,GAAO;;AMnGtB;;gBAEgC;EAAE,OAAO,ENkgB1B,GAAO;;AMjgBtB,sBAAsC;EAAE,OAAO,ENua1B,GAAO;;AMta5B,uBAAuC;EAAE,OAAO,ENqa1B,GAAO;;AMpa7B,oBAAoC;EAAE,OAAO,EN+X1B,GAAO;;AM9X1B,iBAAiC;EAAE,OAAO,ENsb1B,GAAO;;AMrbvB;cAC8B;EAAE,OAAO,ENwH1B,GAAO;;AMvHpB,kBAAkC;EAAE,OAAO,ENygB1B,GAAO;;AMxgBxB,eAA+B;EAAE,OAAO,ENmQ1B,GAAO;;AMlQrB,iBAAiC;EAAE,OAAO,EN6L1B,GAAO;;AM5LvB,kBAAkC;EAAE,OAAO,EN0G1B,GAAO;;AMzGxB,eAA+B;EAAE,OAAO,EN+Y1B,GAAO;;AM9YrB,mBAAmC;EAAE,OAAO,ENiJ1B,GAAO;;AMhJzB,8BAA8C;EAAE,OAAO,ENI1B,GAAO;;AMHpC,4BAA4C;EAAE,OAAO,ENM1B,GAAO;;AMLlC,gBAAgC;EAAE,OAAO,ENkQ1B,GAAO;;AMjQtB,wBAAwC;EAAE,OAAO,EN4W1B,GAAO;;AM3W9B;iBACiC;EAAE,OAAO,ENmY1B,GAAO;;AMlYvB,kBAAkC;EAAE,OAAO,EN8X1B,GAAO;;AM7XxB,mBAAmC;EAAE,OAAO,ENiS1B,GAAO;;AMhSzB,eAA+B;EAAE,OAAO,ENoS1B,GAAO;;AMnSrB,eAA+B;EAAE,OAAO,ENgM1B,GAAO;;AM/LrB,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;AM9O3B,qBAAqC;EAAE,OAAO,EN8hB1B,GAAO;;AM7hB3B,sBAAsC;EAAE,OAAO,EN4hB1B,GAAO;;AM3hB5B,oBAAoC;EAAE,OAAO,EN6hB1B,GAAO;;AM5hB1B,iBAAiC;EAAE,OAAO,EN2W1B,GAAO;;AM1WvB,kBAAkC;EAAE,OAAO,ENW1B,GAAO;;AMVxB,cAA8B;EAAE,OAAO,ENod1B,GAAO;;AMndpB,eAA+B;EAAE,OAAO,ENod1B,GAAO;;AMndrB,eAA+B;EAAE,OAAO,EN2B1B,GAAO;;AM1BrB,mBAAmC;EAAE,OAAO,EN2B1B,GAAO;;AM1BzB,gBAAgC;EAAE,OAAO,ENkW1B,GAAO;;AMjWtB,iBAAiC;EAAE,OAAO,ENwC1B,GAAO;;AMvCvB,eAA+B;EAAE,OAAO,EN8L1B,GAAO;;AM7LrB,eAA+B;EAAE,OAAO,ENmB1B,GAAO;;AMlBrB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB,sBAAsC;EAAE,OAAO,ENid1B,GAAO;;AMhd5B,qBAAqC;EAAE,OAAO,ENid1B,GAAO;;AMhd3B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;AM2C3B,uBAAuC;EAAE,OAAO,EN7C1B,GAAO;;AM8C7B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;AM4C5B,wBAAwC;EAAE,OAAO,EN9C1B,GAAO;;AM+C9B,eAA+B;EAAE,OAAO,ENwQ1B,GAAO;;AMvQrB;kBACkC;EAAE,OAAO,ENmT1B,GAAO;;AMlTxB,iBAAiC;EAAE,OAAO,ENmO1B,GAAO;;AMlOvB,uBAAuC;EAAE,OAAO,ENigB1B,GAAO;;AMhgB7B;;oBAEoC;EAAE,OAAO,EN+T1B,GAAO;;AM9T1B,iBAAiC;EAAE,OAAO,ENwT1B,GAAO;;AMvTvB,qBAAqC;EAAE,OAAO,EN+Q1B,GAAO;;AM9Q3B,iBAAiC;EAAE,OAAO,EN5D1B,GAAO;;AM6DvB,eAA+B;EAAE,OAAO,EN8c1B,GAAO;;AM7crB;0BAC0C;EAAE,OAAO,ENqT1B,GAAO;;AMpThC,yBAAyC;EAAE,OAAO,ENuX1B,GAAO;;AMtX/B,yBAAyC;EAAE,OAAO,EN0C1B,GAAO;;AMzC/B,iBAAiC;EAAE,OAAO,ENjC1B,GAAO;;AMkCvB,wBAAwC;EAAE,OAAO,ENma1B,GAAO;;AMla9B,wBAAwC;EAAE,OAAO,EN4H1B,GAAO;;AM3H9B,mBAAmC;EAAE,OAAO,EN7B1B,GAAO;;AM8BzB,eAA+B;EAAE,OAAO,EN0T1B,GAAO;;AMzTrB,gBAAgC;EAAE,OAAO,ENwS1B,GAAO;;AMvStB,eAA+B;EAAE,OAAO,ENia1B,GAAO;;AMharB,kBAAkC;EAAE,OAAO,ENgK1B,GAAO;;AM/JxB,uBAAuC;EAAE,OAAO,ENuH1B,GAAO;;AMtH7B,uBAAuC;EAAE,OAAO,EN4Z1B,GAAO;;AM3Z7B,gBAAgC;EAAE,OAAO,EN4F1B,GAAO;;AM3FtB,uBAAuC;EAAE,OAAO,ENoC1B,GAAO;;AMnC7B,wBAAwC;EAAE,OAAO,ENoC1B,GAAO;;AMnC9B,sBAAsC;EAAE,OAAO,ENsT1B,GAAO;;AMrT5B,uBAAuC;EAAE,OAAO,ENyQ1B,GAAO;;AMxQ7B,uBAAuC;EAAE,OAAO,ENwb1B,GAAO;;AMvb7B,uBAAuC;EAAE,OAAO,ENsB1B,GAAO;;AMrB7B,0BAA0C;EAAE,OAAO,EN2T1B,GAAO;;AM1ThC,sBAAsC;EAAE,OAAO,ENsM1B,GAAO;;AMrM5B,qBAAqC;EAAE,OAAO,EN6D1B,GAAO;;AM5D3B,yBAAyC;EAAE,OAAO,ENob1B,GAAO;;AMnb/B,yBAAyC;EAAE,OAAO,ENkB1B,GAAO;;AMjB/B,cAA8B;EAAE,OAAO,EN/C1B,GAAO;;AMgDpB,qBAAqC;EAAE,OAAO,EN3D1B,GAAO;;AM4D3B,sBAAsC;EAAE,OAAO,EN3D1B,GAAO;;AM4D5B,mBAAmC;EAAE,OAAO,EN3D1B,GAAO;;AM4DzB,qBAAqC;EAAE,OAAO,EN/D1B,GAAO;;AMgE3B;gBACgC;EAAE,OAAO,ENqV1B,GAAO;;AMpVtB,iBAAiC;EAAE,OAAO,ENuF1B,GAAO;;AMtFvB,mBAAmC;EAAE,OAAO,EN4C1B,GAAO;;AM3CzB,eAA+B;EAAE,OAAO,ENmS1B,GAAO;;AMlSrB,gBAAgC;EAAE,OAAO,ENsP1B,GAAO;;AMrPtB,mBAAmC;EAAE,OAAO,EN9D1B,GAAO;;AM+DzB,6BAA6C;EAAE,OAAO,ENgF1B,GAAO;;AM/EnC,eAA+B;EAAE,OAAO,EN+I1B,GAAO;;AM9IrB,eAA+B;EAAE,OAAO,ENoM1B,GAAO;;AMnMrB,eAA+B;EAAE,OAAO,ENmH1B,GAAO;;AMlHrB,cAA8B;EAAE,OAAO,ENiF1B,GAAO;;AMhFpB,oBAAoC;EAAE,OAAO,ENiF1B,GAAO;;AMhF1B;+BAC+C;EAAE,OAAO,EN0E1B,GAAO;;AMzErC,gBAAgC;EAAE,OAAO,ENmR1B,GAAO;;AMlRtB,mBAAmC;EAAE,OAAO,EN/B1B,GAAO;;AMgCzB,iBAAiC;EAAE,OAAO,ENoS1B,GAAO;;AMnSvB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,iBAAiC;EAAE,OAAO,ENqN1B,GAAO;;AMpNvB,qBAAqC;EAAE,OAAO,ENE1B,GAAO;;AMD3B,uBAAuC;EAAE,OAAO,ENF1B,GAAO;;AMG7B,kBAAkC;EAAE,OAAO,EN2S1B,GAAO;;AM1SxB,wBAAwC;EAAE,OAAO,ENyU1B,GAAO;;AMxU9B,iBAAiC;EAAE,OAAO,EN8G1B,GAAO;;AM7GvB,sBAAsC;EAAE,OAAO,EN+G1B,GAAO;;AM9G5B,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,mBAAmC;EAAE,OAAO,ENrF1B,GAAO;;AMsFzB;oBACoC;EAAE,OAAO,EN/E1B,GAAO;;AMgF1B,yBAAyC;EAAE,OAAO,ENua1B,GAAO;;AMta/B,0BAA0C;EAAE,OAAO,ENmE1B,GAAO;;AMlEhC,uBAAuC;EAAE,OAAO,EN5C1B,GAAO;;AM6C7B,cAA8B;EAAE,OAAO,ENqK1B,GAAO;;AMpKpB;eAC+B;EAAE,OAAO,ENK1B,GAAO;;AMJrB,mBAAmC;EAAE,OAAO,ENQ1B,GAAO;;AMPzB,sBAAsC;EAAE,OAAO,ENmY1B,GAAO;;AMlY5B,wBAAwC;EAAE,OAAO,ENiY1B,GAAO;;AMhY9B,oBAAoC;EAAE,OAAO,EN2V1B,GAAO;;AM1V1B,kBAAkC;EAAE,OAAO,ENyI1B,GAAO;;AMxIxB,mBAAmC;EAAE,OAAO,ENyT1B,GAAO;;AMxTzB,0BAA0C;EAAE,OAAO,ENiL1B,GAAO;;AMhLhC,qBAAqC;EAAE,OAAO,EN0X1B,GAAO;;AMzX3B,wBAAwC;EAAE,OAAO,EN8C1B,GAAO;;AM7C9B,kBAAkC;EAAE,OAAO,ENoT1B,GAAO;;AMnTxB,iBAAiC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YvB,wBAAwC;EAAE,OAAO,EN6G1B,GAAO;;AM5G9B,iBAAiC;EAAE,OAAO,EN8Z1B,GAAO;;AM7ZvB,kBAAkC;EAAE,OAAO,EN+J1B,GAAO;;AM9JxB,gBAAgC;EAAE,OAAO,ENsO1B,GAAO;;AMrOtB,mBAAmC;EAAE,OAAO,EN2U1B,GAAO;;AM1UzB,qBAAqC;EAAE,OAAO,EN/E1B,GAAO;;AMgF3B,uBAAuC;EAAE,OAAO,ENoO1B,GAAO;;AMnO7B,kBAAkC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YxB;mBACmC;EAAE,OAAO,ENuC1B,GAAO;;AMtCzB,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,iBAAiC;EAAE,OAAO,ENiZ1B,GAAO;;AMhZvB,sBAAsC;EAAE,OAAO,ENR1B,GAAO;;AMS5B,cAA8B;EAAE,OAAO,EN4Q1B,GAAO;;AM3QpB,gBAAgC;EAAE,OAAO,ENgH1B,GAAO;;AM/GtB,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,eAA+B;EAAE,OAAO,ENzG1B,GAAO;;AM0GrB,sBAAsC;EAAE,OAAO,ENzD1B,GAAO;;AM0D5B,uBAAuC;EAAE,OAAO,EN0G1B,GAAO;;AMzG7B,sBAAsC;EAAE,OAAO,ENwG1B,GAAO;;AMvG5B,oBAAoC;EAAE,OAAO,ENyG1B,GAAO;;AMxG1B,sBAAsC;EAAE,OAAO,ENqG1B,GAAO;;AMpG5B,4BAA4C;EAAE,OAAO,EN5I1B,GAAO;;AM6IlC,6BAA6C;EAAE,OAAO,ENxI1B,GAAO;;AMyInC,0BAA0C;EAAE,OAAO,ENxI1B,GAAO;;AMyIhC,4BAA4C;EAAE,OAAO,ENhJ1B,GAAO;;AMiJlC,gBAAgC;EAAE,OAAO,ENsF1B,GAAO;;AMrFtB,iBAAiC;EAAE,OAAO,ENia1B,GAAO;;AMhavB,gBAAgC;EAAE,OAAO,ENiV1B,GAAO;;AMhVtB,iBAAiC;EAAE,OAAO,ENgD1B,GAAO;;AM/CvB,oBAAoC;EAAE,OAAO,ENvG1B,GAAO;;AMwG1B,qBAAqC;EAAE,OAAO,ENzI1B,GAAO;;AM0I3B;gBACgC;EAAE,OAAO,ENqY1B,GAAO;;AMpYtB;eAC+B;EAAE,OAAO,ENuI1B,GAAO;;AMtIrB,gBAAgC;EAAE,OAAO,ENpD1B,GAAO;;AMqDtB,gBAAgC;EAAE,OAAO,EN+C1B,GAAO;;AM9CtB;mBACmC;EAAE,OAAO,ENwP1B,GAAO;;AMvPzB;kBACkC;EAAE,OAAO,ENkC1B,GAAO;;AMjCxB,oBAAoC;EAAE,OAAO,ENsL1B,GAAO;;AMrL1B;mBACmC;EAAE,OAAO,EN0C1B,GAAO;;AMzCzB,iBAAiC;EAAE,OAAO,ENiS1B,GAAO;;AMhSvB;;eAE+B;EAAE,OAAO,EN9I1B,GAAO;;AM+IrB,kBAAkC;EAAE,OAAO,ENgI1B,GAAO;;AM/HxB,kBAAkC;EAAE,OAAO,EN8H1B,GAAO;;AM7HxB,wBAAwC;EAAE,OAAO,EN4S1B,GAAO;;AM3S9B,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;AMnW1B,gBAAgC;EAAE,OAAO,ENmT1B,GAAO;;AMlTtB,gBAAgC;EAAE,OAAO,ENkI1B,GAAO;;AMjItB,gBAAgC;EAAE,OAAO,ENuV1B,GAAO;;AMtVtB,oBAAoC;EAAE,OAAO,ENwL1B,GAAO;;AMvL1B,2BAA2C;EAAE,OAAO,ENyL1B,GAAO;;AMxLjC,6BAA6C;EAAE,OAAO,ENyD1B,GAAO;;AMxDnC,sBAAsC;EAAE,OAAO,ENuD1B,GAAO;;AMtD5B,gBAAgC;EAAE,OAAO,ENsJ1B,GAAO;;AMrJtB,qBAAqC;EAAE,OAAO,ENtH1B,GAAO;;AMuH3B,mBAAmC;EAAE,OAAO,ENhH1B,GAAO;;AMiHzB,qBAAqC;EAAE,OAAO,ENvH1B,GAAO;;AMwH3B,sBAAsC;EAAE,OAAO,ENvH1B,GAAO;;AMwH5B,kBAAkC;EAAE,OAAO,ENvE1B,GAAO;;AMwExB;eAC+B;EAAE,OAAO,EN2P1B,GAAO;;AM1PrB;oBACoC;EAAE,OAAO,EN+P1B,GAAO;;AM9P1B;mBACmC;EAAE,OAAO,EN4P1B,GAAO;;AM3PzB,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,mBAAmC;EAAE,OAAO,ENkG1B,GAAO;;AMjGzB;eAC+B;EAAE,OAAO,EN8U1B,GAAO;;AM7UrB;gBACgC;EAAE,OAAO,ENqB1B,GAAO;;AMpBtB;qBACqC;EAAE,OAAO,EN2R1B,GAAO;;AM1R3B,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;AMqF1B,qBAAqC;EAAE,OAAO,ENnF1B,GAAO;;AMoF3B;eAC+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,kBAAkC;EAAE,OAAO,ENkO1B,GAAO;;AMjOxB,mBAAmC;EAAE,OAAO,ENkU1B,GAAO;;AMjUzB;oBACoC;EAAE,OAAO,EN1G1B,GAAO;;AM2G1B,sBAAsC;EAAE,OAAO,ENgF1B,GAAO;;AM/E5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;AMoDzB,yBAAyC;EAAE,OAAO,ENzG1B,GAAO;;AM0G/B,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,kBAAkC;EAAE,OAAO,ENsU1B,GAAO;;AMrUxB,sBAAsC;EAAE,OAAO,EN+P1B,GAAO;;AM9P5B,mBAAmC;EAAE,OAAO,ENsQ1B,GAAO;;AMrQzB,iBAAiC;EAAE,OAAO,ENvL1B,GAAO;;AMwLvB,iBAAiC;EAAE,OAAO,ENzG1B,GAAO;;AM0GvB,kBAAkC;EAAE,OAAO,ENtF1B,GAAO;;AMuFxB,sBAAsC;EAAE,OAAO,EN3B1B,GAAO;;AM4B5B,qBAAqC;EAAE,OAAO,ENxK1B,GAAO;;AMyK3B,qBAAqC;EAAE,OAAO,ENkC1B,GAAO;;AMjC3B,oBAAoC;EAAE,OAAO,EN3O1B,GAAO;;AM4O1B,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;AMgD5B,eAA+B;EAAE,OAAO,ENpM1B,GAAO;;AMqMrB,mBAAmC;EAAE,OAAO,ENe1B,GAAO;;AMdzB,sBAAsC;EAAE,OAAO,ENgJ1B,GAAO;;AM/I5B,4BAA4C;EAAE,OAAO,EN5O1B,GAAO;;AM6OlC,6BAA6C;EAAE,OAAO,EN5O1B,GAAO;;AM6OnC,0BAA0C;EAAE,OAAO,EN5O1B,GAAO;;AM6OhC,4BAA4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC,qBAAqC;EAAE,OAAO,EN5O1B,GAAO;;AM6O3B,sBAAsC;EAAE,OAAO,EN5O1B,GAAO;;AM6O5B,mBAAmC;EAAE,OAAO,EN5O1B,GAAO;;AM6OzB,qBAAqC;EAAE,OAAO,ENhP1B,GAAO;;AMiP3B,kBAAkC;EAAE,OAAO,ENlG1B,GAAO;;AMmGxB,iBAAiC;EAAE,OAAO,ENuC1B,GAAO;;AMtCvB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB;iBACiC;EAAE,OAAO,ENyF1B,GAAO;;AMxFvB,mBAAmC;EAAE,OAAO,EN9I1B,GAAO;;AM+IzB,qBAAqC;EAAE,OAAO,EN0I1B,GAAO;;AMzI3B,sBAAsC;EAAE,OAAO,EN0I1B,GAAO;;AMzI5B,kBAAkC;EAAE,OAAO,ENgN1B,GAAO;;AM/MxB,iBAAiC;EAAE,OAAO,ENnJ1B,GAAO;;AMoJvB;gBACgC;EAAE,OAAO,ENkJ1B,GAAO;;AMjJtB,qBAAqC;EAAE,OAAO,ENnB1B,GAAO;;AMoB3B,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,wBAAwC;EAAE,OAAO,ENvC1B,GAAO;;AMwC9B,kBAAkC;EAAE,OAAO,EN0L1B,GAAO;;AMzLxB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,gBAAgC;EAAE,OAAO,ENoE1B,GAAO;;AMnEtB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,iBAAiC;EAAE,OAAO,ENrD1B,GAAO;;AMsDvB,yBAAyC;EAAE,OAAO,ENvD1B,GAAO;;AMwD/B,mBAAmC;EAAE,OAAO,ENuO1B,GAAO;;AMtOzB,eAA+B;EAAE,OAAO,ENtJ1B,GAAO;;AMuJrB;oBACoC;EAAE,OAAO,ENqI1B,GAAO;;AMpI1B;;sBAEsC;EAAE,OAAO,ENuM1B,GAAO;;AMtM5B,yBAAyC;EAAE,OAAO,ENkC1B,GAAO;;AMjC/B,eAA+B;EAAE,OAAO,EN5I1B,GAAO;;AM6IrB,oBAAoC;EAAE,OAAO,EN7J1B,GAAO;;AM8J1B;uBACuC;EAAE,OAAO,EN1L1B,GAAO;;AM2L7B,mBAAmC;EAAE,OAAO,EN4G1B,GAAO;;AM3GzB,eAA+B;EAAE,OAAO,ENT1B,GAAO;;AMUrB,sBAAsC;EAAE,OAAO,ENhH1B,GAAO;;AMiH5B,sBAAsC;EAAE,OAAO,EN8M1B,GAAO;;AM7M5B,oBAAoC;EAAE,OAAO,ENyM1B,GAAO;;AMxM1B,iBAAiC;EAAE,OAAO,ENvH1B,GAAO;;AMwHvB,uBAAuC;EAAE,OAAO,ENmG1B,GAAO;;AMlG7B,qBAAqC;EAAE,OAAO,EN8C1B,GAAO;;AM7C3B,2BAA2C;EAAE,OAAO,EN8C1B,GAAO;;AM7CjC,iBAAiC;EAAE,OAAO,ENgJ1B,GAAO;;AM/IvB,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,4BAA4C;EAAE,OAAO,ENjF1B,GAAO;;AMkFlC,iBAAiC;EAAE,OAAO,ENoH1B,GAAO;;AMnHvB,iBAAiC;EAAE,OAAO,ENkC1B,GAAO;;AMjCvB,8BAA8C;EAAE,OAAO,ENlM1B,GAAO;;AMmMpC,+BAA+C;EAAE,OAAO,ENlM1B,GAAO;;AMmMrC,4BAA4C;EAAE,OAAO,ENlM1B,GAAO;;AMmMlC,8BAA8C;EAAE,OAAO,ENtM1B,GAAO;;AMuMpC,gBAAgC;EAAE,OAAO,EN/B1B,GAAO;;AMgCtB,eAA+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,iBAAiC;EAAE,OAAO,EN9S1B,GAAO;;AM+SvB,qBAAqC;EAAE,OAAO,ENmP1B,GAAO;;AMlP3B,mBAAmC;EAAE,OAAO,EN9O1B,GAAO;;AM+OzB,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN4G1B,GAAO;;AM3G3B,sBAAsC;EAAE,OAAO,ENsE1B,GAAO;;AMrE5B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;AM1MvB,uBAAuC;EAAE,OAAO,EN6B1B,GAAO;;AM5B7B,yBAAyC;EAAE,OAAO,EN6B1B,GAAO;;AM5B/B,mBAAmC;EAAE,OAAO,ENhB1B,GAAO;;AMiBzB,qBAAqC;EAAE,OAAO,ENlB1B,GAAO;;AMmB3B,uBAAuC;EAAE,OAAO,ENvN1B,GAAO;;AMwN7B,wBAAwC;EAAE,OAAO,ENiD1B,GAAO;;AMhD9B,+BAA+C;EAAE,OAAO,EN3I1B,GAAO;;AM4IrC,uBAAuC;EAAE,OAAO,ENkH1B,GAAO;;AMjH7B,kBAAkC;EAAE,OAAO,EN1L1B,GAAO;;AM2LxB;8BAC8C;EAAE,OAAO,ENjP1B,GAAO;;AMkPpC;4BAC4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC;+BAC+C;EAAE,OAAO,ENnP1B,GAAO;;AMoPrC;cAC8B;EAAE,OAAO,EN7J1B,GAAO;;AM8JpB,cAA8B;EAAE,OAAO,EN/F1B,GAAO;;AMgGpB;cAC8B;EAAE,OAAO,EN4N1B,GAAO;;AM3NpB;cAC8B;EAAE,OAAO,ENvD1B,GAAO;;AMwDpB;;;cAG8B;EAAE,OAAO,ENrD1B,GAAO;;AMsDpB;;cAE8B;EAAE,OAAO,EN8E1B,GAAO;;AM7EpB;cAC8B;EAAE,OAAO,ENtD1B,GAAO;;AMuDpB;cAC8B;EAAE,OAAO,ENzR1B,GAAO;;AM0RpB,eAA+B;EAAE,OAAO,ENzJ1B,GAAO;;AM0JrB,oBAAoC;EAAE,OAAO,EN7I1B,GAAO;;AM8I1B,yBAAyC;EAAE,OAAO,EN2G1B,GAAO;;AM1G/B,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,2BAA2C;EAAE,OAAO,EN2G1B,GAAO;;AM1GjC,2BAA2C;EAAE,OAAO,EN8G1B,GAAO;;AM7GjC,4BAA4C;EAAE,OAAO,EN8G1B,GAAO;;AM7GlC,oBAAoC;EAAE,OAAO,ENgK1B,GAAO;;AM/J1B,sBAAsC;EAAE,OAAO,EN4J1B,GAAO;;AM3J5B,yBAAyC;EAAE,OAAO,ENwO1B,GAAO;;AMvO/B,kBAAkC;EAAE,OAAO,ENqO1B,GAAO;;AMpOxB,eAA+B;EAAE,OAAO,EN+N1B,GAAO;;AM9NrB,sBAAsC;EAAE,OAAO,EN+N1B,GAAO;;AM9N5B,uBAAuC;EAAE,OAAO,ENmO1B,GAAO;;AMlO7B,kBAAkC;EAAE,OAAO,ENxM1B,GAAO;;AMyMxB,yBAAyC;EAAE,OAAO,EN+G1B,GAAO;;AM9G/B,oBAAoC;EAAE,OAAO,ENnF1B,GAAO;;AMoF1B,iBAAiC;EAAE,OAAO,EN/I1B,GAAO;;AMgJvB,cAA8B;EAAE,OAAO,ENhX1B,GAAO;;AMiXpB,oBAAoC;EAAE,OAAO,ENxT1B,GAAO;;AMyT1B,2BAA2C;EAAE,OAAO,ENxT1B,GAAO;;AMyTjC,iBAAiC;EAAE,OAAO,ENyK1B,GAAO;;AMxKvB,wBAAwC;EAAE,OAAO,ENyK1B,GAAO;;AMxK9B,0BAA0C;EAAE,OAAO,ENtD1B,GAAO;;AMuDhC,wBAAwC;EAAE,OAAO,ENpD1B,GAAO;;AMqD9B,0BAA0C;EAAE,OAAO,ENvD1B,GAAO;;AMwDhC,2BAA2C;EAAE,OAAO,ENvD1B,GAAO;;AMwDjC,gBAAgC;EAAE,OAAO,ENxW1B,GAAO;;AMyWtB,kBAAkC;EAAE,OAAO,EN0M1B,GAAO;;AMzMxB,kBAAkC;EAAE,OAAO,ENpX1B,GAAO;;AMqXxB,gBAAgC;EAAE,OAAO,ENpE1B,GAAO;;AMqEtB,mBAAmC;EAAE,OAAO,EN1N1B,GAAO;;AM2NzB,gBAAgC;EAAE,OAAO,ENqE1B,GAAO;;AMpEtB,qBAAqC;EAAE,OAAO,ENtJ1B,GAAO;;AMuJ3B,iBAAiC;EAAE,OAAO,ENuJ1B,GAAO;;AMtJvB,iBAAiC;EAAE,OAAO,EN/L1B,GAAO;;AMgMvB,eAA+B;EAAE,OAAO,EN1D1B,GAAO;;AM2DrB;mBACmC;EAAE,OAAO,ENnI1B,GAAO;;AMoIzB,gBAAgC;EAAE,OAAO,EN2G1B,GAAO;;AM1GtB,iBAAiC;EAAE,OAAO,ENxC1B,GAAO;;AMyCvB,kBAAkC;EAAE,OAAO,ENrX1B,GAAO;;AMsXxB,cAA8B;EAAE,OAAO,ENpU1B,GAAO;;AMqUpB,aAA6B;EAAE,OAAO,ENgL1B,GAAO;;AM/KnB,gBAAgC;EAAE,OAAO,ENqL1B,GAAO;;AMpLtB,iBAAiC;EAAE,OAAO,ENa1B,GAAO;;AMZvB,oBAAoC;EAAE,OAAO,ENrC1B,GAAO;;AMsC1B,yBAAyC;EAAE,OAAO,EN8E1B,GAAO;;AM7E/B,+BAA+C;EAAE,OAAO,ENtX1B,GAAO;;AMuXrC,8BAA8C;EAAE,OAAO,ENxX1B,GAAO;;AMyXpC;8BAC8C;EAAE,OAAO,EN3T1B,GAAO;;AM4TpC,uBAAuC;EAAE,OAAO,ENjP1B,GAAO;;AMkP7B,qBAAqC;EAAE,OAAO,EN+K1B,GAAO;;AM9K3B,uBAAuC;EAAE,OAAO,ENmK1B,GAAO;;AMlK7B;cAC8B;EAAE,OAAO,ENoI1B,GAAO;;AMnIpB,wBAAwC;EAAE,OAAO,ENjB1B,GAAO;;AMkB9B,wBAAwC;EAAE,OAAO,EN6D1B,GAAO;;AM5D9B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,0BAA0C;EAAE,OAAO,EN7O1B,GAAO;;AM8OhC,oBAAoC;EAAE,OAAO,EN2K1B,GAAO;;AM1K1B,iBAAiC;EAAE,OAAO,ENvD1B,GAAO;;AMwDvB;;qBAEqC;EAAE,OAAO,ENsI1B,GAAO;;AMrI3B;yBACyC;EAAE,OAAO,ENjK1B,GAAO;;AMkK/B,gBAAgC;EAAE,OAAO,ENwK1B,GAAO;;AMvKtB,iBAAiC;EAAE,OAAO,ENvK1B,GAAO;;AMwKvB,iBAAiC;EAAE,OAAO,ENhB1B,GAAO;;AMiBvB,wBAAwC;EAAE,OAAO,ENhB1B,GAAO;;AMiB9B,6BAA6C;EAAE,OAAO,ENsE1B,GAAO;;AMrEnC,sBAAsC;EAAE,OAAO,ENoE1B,GAAO;;AMnE5B,oBAAoC;EAAE,OAAO,EN7Q1B,GAAO;;AM8Q1B,eAA+B;EAAE,OAAO,EN1Q1B,GAAO;;AM2QrB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;AMkD3B,yBAAyC;EAAE,OAAO,ENjD1B,GAAO;;AMkD/B,iBAAiC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,mBAAmC;EAAE,OAAO,ENzI1B,GAAO;;AM0IzB,cAA8B;EAAE,OAAO,EN9O1B,GAAO;;AM+OpB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;AM4WzB,gBAAgC;EAAE,OAAO,EN9T1B,GAAO;;AM+TtB,cAA8B;EAAE,OAAO,ENnE1B,GAAO;;AMoEpB,gBAAgC;EAAE,OAAO,ENoC1B,GAAO;;AMnCtB,eAA+B;EAAE,OAAO,ENjS1B,GAAO;;AMkSrB,gBAAgC;EAAE,OAAO,ENjS1B,GAAO;;AMkStB,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;AMuYxB,yBAAyC;EAAE,OAAO,ENtY1B,GAAO;;AMuY/B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,uBAAuC;EAAE,OAAO,EN2C1B,GAAO;;AM1C7B,kBAAkC;EAAE,OAAO,ENvC1B,GAAO;;AMwCxB;cAC8B;EAAE,OAAO,EN3W1B,GAAO;;AM4WpB;eAC+B;EAAE,OAAO,EN2D1B,GAAO;;AM1DrB,eAA+B;EAAE,OAAO,ENuF1B,GAAO;;AMtFrB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,qBAAqC;EAAE,OAAO,ENpS1B,GAAO;;AMqS3B,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,mBAAmC;EAAE,OAAO,EN1S1B,GAAO;;AM2SzB,qBAAqC;EAAE,OAAO,ENxP1B,GAAO;;AMyP3B,sBAAsC;EAAE,OAAO,ENjP1B,GAAO;;AMkP5B,uBAAuC;EAAE,OAAO,EN9P1B,GAAO;;AM+P7B,4BAA4C;EAAE,OAAO,ENxP1B,GAAO;;AMyPlC;;uBAEuC;EAAE,OAAO,ENjQ1B,GAAO;;AMkQ7B;yBACyC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQ/B;uBACuC;EAAE,OAAO,ENxQ1B,GAAO;;AMyQ7B;uBACuC;EAAE,OAAO,EN7P1B,GAAO;;AM8P7B,sBAAsC;EAAE,OAAO,EN1Q1B,GAAO;;AM2Q5B,eAA+B;EAAE,OAAO,ENsG1B,GAAO;;AMrGrB,kBAAkC;EAAE,OAAO,ENlV1B,GAAO;;AMmVxB,mBAAmC;EAAE,OAAO,ENnL1B,GAAO;;AMoLzB;;;;oBAIoC;EAAE,OAAO,ENxK1B,GAAO;;AMyK1B,yBAAyC;EAAE,OAAO,ENpW1B,GAAO;;AMqW/B;gBACgC;EAAE,OAAO,EN1E1B,GAAO;;AM2EtB;iBACiC;EAAE,OAAO,ENpT1B,GAAO;;AMqTvB,qBAAqC;EAAE,OAAO,EN1O1B,GAAO;;AM2O3B,cAA8B;EAAE,OAAO,EN5O1B,GAAO;;AM6OpB,sBAAsC;EAAE,OAAO,EN7N1B,GAAO;;AM8N5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;AMvB9B,aAA6B;EAAE,OAAO,ENzF1B,GAAO;;AM0FnB;iBACiC;EAAE,OAAO,EN2F1B,GAAO;;AM1FvB;sBACsC;EAAE,OAAO,EN9H1B,GAAO;;AM+H5B;wBACwC;EAAE,OAAO,EN/H1B,GAAO;;AMgI9B,kBAAkC;EAAE,OAAO,EN3N1B,GAAO;;AM4NxB;sBACsC;EAAE,OAAO,ENrX1B,GAAO;;AMsX5B,iBAAiC;EAAE,OAAO,ENnO1B,GAAO;;AMoOvB,oBAAoC;EAAE,OAAO,ENlI1B,GAAO;;AMmI1B,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;AM2CxB,oBAAoC;EAAE,OAAO,EN7D1B,GAAO;;AM8D1B,2BAA2C;EAAE,OAAO,EN7D1B,GAAO;;AM8DjC,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;AMqbrB;mBACmC;EAAE,OAAO,ENzQ1B,GAAO;;AM0QzB,cAA8B;EAAE,OAAO,ENsC1B,GAAO;;AMrCpB,qBAAqC;EAAE,OAAO,EN/b1B,GAAO;;AMgc3B,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;AMsHrB,qBAAqC;EAAE,OAAO,ENlD1B,GAAO;;AMmD3B,iBAAiC;EAAE,OAAO,ENsC1B,GAAO;;AMrCvB,eAA+B;EAAE,OAAO,ENiF1B,GAAO;;AMhFrB,sBAAsC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ5B,eAA+B;EAAE,OAAO,ENuE1B,GAAO;;AMtErB,qBAAqC;EAAE,OAAO,ENjb1B,GAAO;;AMkb3B,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,wBAAwC;EAAE,OAAO,ENhQ1B,GAAO;;AMiQ9B,kBAAkC;EAAE,OAAO,EN9Z1B,GAAO;;AM+ZxB,wBAAwC;EAAE,OAAO,ENla1B,GAAO;;AMma9B,sBAAsC;EAAE,OAAO,ENpa1B,GAAO;;AMqa5B,kBAAkC;EAAE,OAAO,ENta1B,GAAO;;AMuaxB,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,qBAAqC;EAAE,OAAO,ENld1B,GAAO;;AMmd3B,uBAAuC;EAAE,OAAO,ENld1B,GAAO;;AMmd7B,gBAAgC;EAAE,OAAO,ENY1B,GAAO;;AMXtB,oBAAoC;EAAE,OAAO,EN3X1B,GAAO;;AM4X1B,aAA6B;EAAE,OAAO,ENre1B,GAAO;;AMsenB,qBAAqC;EAAE,OAAO,ENjV1B,GAAO;;AMkV3B,sBAAsC;EAAE,OAAO,ENpK1B,GAAO;;AMqK5B,wBAAwC;EAAE,OAAO,ENrd1B,GAAO;;AMsd9B,qBAAqC;EAAE,OAAO,EN3f1B,GAAO;;AM4f3B,oBAAoC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ1B,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,iBAAiC;EAAE,OAAO,EN1O1B,GAAO;;AM2OvB,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,qBAAqC;EAAE,OAAO,ENN1B,GAAO;;AMO3B,oBAAoC;EAAE,OAAO,ENN1B,GAAO;;AMO1B,kBAAkC;EAAE,OAAO,EN/d1B,GAAO;;AMgexB,cAA8B;EAAE,OAAO,EN7c1B,GAAO;;AM8cpB,kBAAkC;EAAE,OAAO,EN1P1B,GAAO;;AM2PxB,oBAAoC;EAAE,OAAO,ENhhB1B,GAAO;;AMihB1B,aAA6B;EAAE,OAAO,EN7b1B,GAAO;;AM8bnB;;cAE8B;EAAE,OAAO,ENxQ1B,GAAO;;AMyQpB,mBAAmC;EAAE,OAAO,EN7M1B,GAAO;;AM8MzB,qBAAqC;EAAE,OAAO,ENpd1B,GAAO;;AMqd3B,yBAAyC;EAAE,OAAO,ENnZ1B,GAAO;;AMoZ/B,mBAAmC;EAAE,OAAO,ENxY1B,GAAO;;AMyYzB,mBAAmC;EAAE,OAAO,EN1T1B,GAAO;;AM2TzB,kBAAkC;EAAE,OAAO,ENxP1B,GAAO;;AMyPxB,iBAAiC;EAAE,OAAO,ENrH1B,GAAO;;AMsHvB,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,sBAAsC;EAAE,OAAO,ENrG1B,GAAO;;AMsG5B,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;AMqGzB,oBAAoC;EAAE,OAAO,EN5c1B,GAAO;;AM6c1B,0BAA0C;EAAE,OAAO,EN9c1B,GAAO;;AM+chC,kBAAkC;EAAE,OAAO,EN3Y1B,GAAO;;AM4YxB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;AMiHrB,sBAAsC;EAAE,OAAO,ENI1B,GAAO;;AMH5B,qBAAqC;EAAE,OAAO,EN5M1B,GAAO;;AM6M3B,sBAAsC;EAAE,OAAO,ENpE1B,GAAO;;AMqE5B,oBAAoC;EAAE,OAAO,ENhS1B,GAAO;;AMiS1B,gBAAgC;EAAE,OAAO,ENG1B,GAAO;;AMFtB,eAA+B;EAAE,OAAO,ENtO1B,GAAO;;AMuOrB,kBAAkC;EAAE,OAAO,EN7N1B,GAAO;;AM8NxB,sBAAsC;EAAE,OAAO,ENhC1B,GAAO;;AMiC5B,0BAA0C;EAAE,OAAO,ENhC1B,GAAO;;AMiChC,uBAAuC;EAAE,OAAO,END1B,GAAO;;AME7B,sBAAsC;EAAE,OAAO,EN1O1B,GAAO;;AM2O5B,qBAAqC;EAAE,OAAO,ENF1B,GAAO;;AMG3B,sBAAsC;EAAE,OAAO,EN3O1B,GAAO;;AM4O5B,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,wBAAwC;EAAE,OAAO,EN5O1B,GAAO;;AM6O9B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;AMwNvB,4BAA4C;EAAE,OAAO,EN9X1B,GAAO;;AM+XlC,sBAAsC;EAAE,OAAO,ENhM1B,GAAO;;AMiM5B,mBAAmC;EAAE,OAAO,ENI1B,GAAO;;AMHzB,iBAAiC;EAAE,OAAO,EN7I1B,GAAO;;AM8IvB,oBAAoC;EAAE,OAAO,ENjB1B,GAAO;;AMkB1B,qBAAqC;EAAE,OAAO,ENhB1B,GAAO;;AMiB3B;cAC8B;EAAE,OAAO,ENphB1B,GAAO;;AMqhBpB,kBAAkC;EAAE,OAAO,ENd1B,GAAO;;AMexB,gBAAgC;EAAE,OAAO,ENnD1B,GAAO;;AMoDtB,iBAAiC;EAAE,OAAO,ENvF1B,GAAO;;AMwFvB,iBAAiC;EAAE,OAAO,ENrP1B,GAAO", +"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], +"names": [], +"file": "font-awesome.css" +} diff --git a/vendor/assets/components/font-awesome/css/font-awesome.min.css b/vendor/assets/components/font-awesome/css/font-awesome.min.css new file mode 100644 index 000000000..24fcc04c4 --- /dev/null +++ b/vendor/assets/components/font-awesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file diff --git a/vendor/assets/components/font-awesome/fonts/FontAwesome.otf b/vendor/assets/components/font-awesome/fonts/FontAwesome.otf new file mode 100644 index 000000000..f7936cc1e Binary files /dev/null and b/vendor/assets/components/font-awesome/fonts/FontAwesome.otf differ diff --git a/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.eot b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.eot new file mode 100644 index 000000000..33b2bb800 Binary files /dev/null and b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.eot differ diff --git a/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.svg b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.svg new file mode 100644 index 000000000..1ee89d436 --- /dev/null +++ b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.ttf b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 000000000..ed9372f8e Binary files /dev/null and b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.ttf differ diff --git a/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff new file mode 100644 index 000000000..8b280b98f Binary files /dev/null and b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff differ diff --git a/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff2 b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..3311d5851 Binary files /dev/null and b/vendor/assets/components/font-awesome/fonts/fontawesome-webfont.woff2 differ diff --git a/vendor/assets/components/font-awesome/less/animated.less b/vendor/assets/components/font-awesome/less/animated.less new file mode 100644 index 000000000..66ad52a5b --- /dev/null +++ b/vendor/assets/components/font-awesome/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/vendor/assets/components/font-awesome/less/bordered-pulled.less b/vendor/assets/components/font-awesome/less/bordered-pulled.less new file mode 100644 index 000000000..0c90eb567 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/bordered-pulled.less @@ -0,0 +1,16 @@ +// Bordered & Pulled +// ------------------------- + +.@{fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em @fa-border-color; + border-radius: .1em; +} + +.pull-right { float: right; } +.pull-left { float: left; } + +.@{fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/vendor/assets/components/font-awesome/less/core.less b/vendor/assets/components/font-awesome/less/core.less new file mode 100644 index 000000000..f814f1e17 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/core.less @@ -0,0 +1,13 @@ +// Base Class Definition +// ------------------------- + +.@{fa-css-prefix} { + display: inline-block; + font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} diff --git a/vendor/assets/components/font-awesome/less/fixed-width.less b/vendor/assets/components/font-awesome/less/fixed-width.less new file mode 100644 index 000000000..110289f2f --- /dev/null +++ b/vendor/assets/components/font-awesome/less/fixed-width.less @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.@{fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/vendor/assets/components/font-awesome/less/font-awesome.less b/vendor/assets/components/font-awesome/less/font-awesome.less new file mode 100644 index 000000000..1f45c63d1 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/font-awesome.less @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables.less"; +@import "mixins.less"; +@import "path.less"; +@import "core.less"; +@import "larger.less"; +@import "fixed-width.less"; +@import "list.less"; +@import "bordered-pulled.less"; +@import "animated.less"; +@import "rotated-flipped.less"; +@import "stacked.less"; +@import "icons.less"; diff --git a/vendor/assets/components/font-awesome/less/icons.less b/vendor/assets/components/font-awesome/less/icons.less new file mode 100644 index 000000000..c265de5a6 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/icons.less @@ -0,0 +1,596 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } +.@{fa-css-prefix}-music:before { content: @fa-var-music; } +.@{fa-css-prefix}-search:before { content: @fa-var-search; } +.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } +.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } +.@{fa-css-prefix}-star:before { content: @fa-var-star; } +.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } +.@{fa-css-prefix}-user:before { content: @fa-var-user; } +.@{fa-css-prefix}-film:before { content: @fa-var-film; } +.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } +.@{fa-css-prefix}-th:before { content: @fa-var-th; } +.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } +.@{fa-css-prefix}-check:before { content: @fa-var-check; } +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, +.@{fa-css-prefix}-times:before { content: @fa-var-times; } +.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } +.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } +.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } +.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } +.@{fa-css-prefix}-gear:before, +.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } +.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } +.@{fa-css-prefix}-home:before { content: @fa-var-home; } +.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } +.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } +.@{fa-css-prefix}-road:before { content: @fa-var-road; } +.@{fa-css-prefix}-download:before { content: @fa-var-download; } +.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } +.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } +.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } +.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } +.@{fa-css-prefix}-rotate-right:before, +.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } +.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } +.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } +.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } +.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } +.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } +.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } +.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } +.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } +.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } +.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } +.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } +.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } +.@{fa-css-prefix}-book:before { content: @fa-var-book; } +.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } +.@{fa-css-prefix}-print:before { content: @fa-var-print; } +.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } +.@{fa-css-prefix}-font:before { content: @fa-var-font; } +.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } +.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } +.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } +.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } +.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } +.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } +.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } +.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } +.@{fa-css-prefix}-list:before { content: @fa-var-list; } +.@{fa-css-prefix}-dedent:before, +.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } +.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } +.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, +.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } +.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } +.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } +.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } +.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } +.@{fa-css-prefix}-edit:before, +.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } +.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } +.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } +.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } +.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } +.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } +.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } +.@{fa-css-prefix}-play:before { content: @fa-var-play; } +.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } +.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } +.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } +.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } +.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } +.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } +.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } +.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } +.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } +.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } +.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } +.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } +.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } +.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } +.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } +.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } +.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } +.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } +.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } +.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } +.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } +.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } +.@{fa-css-prefix}-mail-forward:before, +.@{fa-css-prefix}-share:before { content: @fa-var-share; } +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } +.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } +.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } +.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } +.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } +.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } +.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } +.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } +.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } +.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } +.@{fa-css-prefix}-warning:before, +.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } +.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } +.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } +.@{fa-css-prefix}-random:before { content: @fa-var-random; } +.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } +.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } +.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } +.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } +.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } +.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } +.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } +.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } +.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } +.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } +.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } +.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } +.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } +.@{fa-css-prefix}-key:before { content: @fa-var-key; } +.@{fa-css-prefix}-gears:before, +.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } +.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } +.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } +.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } +.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } +.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } +.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } +.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } +.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } +.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } +.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } +.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } +.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } +.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } +.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } +.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } +.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } +.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } +.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } +.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } +.@{fa-css-prefix}-facebook-f:before, +.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } +.@{fa-css-prefix}-github:before { content: @fa-var-github; } +.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } +.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } +.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } +.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } +.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } +.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } +.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } +.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } +.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } +.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } +.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } +.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } +.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } +.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } +.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } +.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } +.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } +.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } +.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { content: @fa-var-users; } +.@{fa-css-prefix}-chain:before, +.@{fa-css-prefix}-link:before { content: @fa-var-link; } +.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } +.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } +.@{fa-css-prefix}-cut:before, +.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } +.@{fa-css-prefix}-copy:before, +.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } +.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } +.@{fa-css-prefix}-save:before, +.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } +.@{fa-css-prefix}-square:before { content: @fa-var-square; } +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } +.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } +.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } +.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } +.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } +.@{fa-css-prefix}-table:before { content: @fa-var-table; } +.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } +.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } +.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } +.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } +.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } +.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } +.@{fa-css-prefix}-money:before { content: @fa-var-money; } +.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } +.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } +.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } +.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } +.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } +.@{fa-css-prefix}-unsorted:before, +.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } +.@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } +.@{fa-css-prefix}-sort-up:before, +.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } +.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } +.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } +.@{fa-css-prefix}-rotate-left:before, +.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } +.@{fa-css-prefix}-legal:before, +.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } +.@{fa-css-prefix}-dashboard:before, +.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } +.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } +.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } +.@{fa-css-prefix}-flash:before, +.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } +.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } +.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } +.@{fa-css-prefix}-paste:before, +.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } +.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } +.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } +.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } +.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } +.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } +.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } +.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } +.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } +.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } +.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } +.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } +.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } +.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } +.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } +.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } +.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } +.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } +.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } +.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } +.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } +.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } +.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } +.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } +.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } +.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } +.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } +.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } +.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } +.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } +.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } +.@{fa-css-prefix}-mobile-phone:before, +.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } +.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } +.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } +.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } +.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } +.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } +.@{fa-css-prefix}-mail-reply:before, +.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } +.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } +.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } +.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } +.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } +.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } +.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } +.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } +.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } +.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } +.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } +.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } +.@{fa-css-prefix}-code:before { content: @fa-var-code; } +.@{fa-css-prefix}-mail-reply-all:before, +.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } +.@{fa-css-prefix}-star-half-empty:before, +.@{fa-css-prefix}-star-half-full:before, +.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } +.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } +.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } +.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } +.@{fa-css-prefix}-unlink:before, +.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } +.@{fa-css-prefix}-question:before { content: @fa-var-question; } +.@{fa-css-prefix}-info:before { content: @fa-var-info; } +.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } +.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } +.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } +.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } +.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } +.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } +.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } +.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } +.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } +.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } +.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } +.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } +.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } +.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } +.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } +.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } +.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } +.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } +.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } +.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } +.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } +.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } +.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } +.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } +.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } +.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } +.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } +.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } +.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } +.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } +.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } +.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } +.@{fa-css-prefix}-toggle-down:before, +.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } +.@{fa-css-prefix}-toggle-up:before, +.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } +.@{fa-css-prefix}-toggle-right:before, +.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } +.@{fa-css-prefix}-euro:before, +.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } +.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } +.@{fa-css-prefix}-dollar:before, +.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } +.@{fa-css-prefix}-rupee:before, +.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } +.@{fa-css-prefix}-cny:before, +.@{fa-css-prefix}-rmb:before, +.@{fa-css-prefix}-yen:before, +.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } +.@{fa-css-prefix}-ruble:before, +.@{fa-css-prefix}-rouble:before, +.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } +.@{fa-css-prefix}-won:before, +.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } +.@{fa-css-prefix}-bitcoin:before, +.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } +.@{fa-css-prefix}-file:before { content: @fa-var-file; } +.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } +.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } +.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } +.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } +.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } +.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } +.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } +.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } +.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } +.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } +.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } +.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } +.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } +.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } +.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } +.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } +.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } +.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } +.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } +.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } +.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } +.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } +.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } +.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } +.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } +.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } +.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } +.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } +.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } +.@{fa-css-prefix}-android:before { content: @fa-var-android; } +.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } +.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } +.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } +.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } +.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } +.@{fa-css-prefix}-female:before { content: @fa-var-female; } +.@{fa-css-prefix}-male:before { content: @fa-var-male; } +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } +.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } +.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } +.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } +.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } +.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } +.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } +.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } +.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } +.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } +.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } +.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } +.@{fa-css-prefix}-toggle-left:before, +.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } +.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } +.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } +.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } +.@{fa-css-prefix}-turkish-lira:before, +.@{fa-css-prefix}-try:before { content: @fa-var-try; } +.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { content: @fa-var-university; } +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } +.@{fa-css-prefix}-google:before { content: @fa-var-google; } +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } +.@{fa-css-prefix}-language:before { content: @fa-var-language; } +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } +.@{fa-css-prefix}-building:before { content: @fa-var-building; } +.@{fa-css-prefix}-child:before { content: @fa-var-child; } +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } +.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { content: @fa-var-car; } +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } +.@{fa-css-prefix}-database:before { content: @fa-var-database; } +.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } +.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } +.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } +.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } +.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } +.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } +.@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } +.@{fa-css-prefix}-history:before { content: @fa-var-history; } +.@{fa-css-prefix}-genderless:before, +.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } +.@{fa-css-prefix}-header:before { content: @fa-var-header; } +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } +.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } +.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } +.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } +.@{fa-css-prefix}-at:before { content: @fa-var-at; } +.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } +.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } +.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } +.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } +.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } +.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } +.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } +.@{fa-css-prefix}-server:before { content: @fa-var-server; } +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } +.@{fa-css-prefix}-train:before { content: @fa-var-train; } +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } diff --git a/vendor/assets/components/font-awesome/less/larger.less b/vendor/assets/components/font-awesome/less/larger.less new file mode 100644 index 000000000..c9d646770 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/larger.less @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.@{fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.@{fa-css-prefix}-2x { font-size: 2em; } +.@{fa-css-prefix}-3x { font-size: 3em; } +.@{fa-css-prefix}-4x { font-size: 4em; } +.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/vendor/assets/components/font-awesome/less/list.less b/vendor/assets/components/font-awesome/less/list.less new file mode 100644 index 000000000..0b440382f --- /dev/null +++ b/vendor/assets/components/font-awesome/less/list.less @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.@{fa-css-prefix}-ul { + padding-left: 0; + margin-left: @fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.@{fa-css-prefix}-li { + position: absolute; + left: -@fa-li-width; + width: @fa-li-width; + top: (2em / 14); + text-align: center; + &.@{fa-css-prefix}-lg { + left: (-@fa-li-width + (4em / 14)); + } +} diff --git a/vendor/assets/components/font-awesome/less/mixins.less b/vendor/assets/components/font-awesome/less/mixins.less new file mode 100644 index 000000000..c97f4604c --- /dev/null +++ b/vendor/assets/components/font-awesome/less/mixins.less @@ -0,0 +1,27 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} + +.fa-icon-rotate(@degrees, @rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} diff --git a/vendor/assets/components/font-awesome/less/path.less b/vendor/assets/components/font-awesome/less/path.less new file mode 100644 index 000000000..9211e6659 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/path.less @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); + src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), + url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), + url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), + url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); +// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/vendor/assets/components/font-awesome/less/rotated-flipped.less b/vendor/assets/components/font-awesome/less/rotated-flipped.less new file mode 100644 index 000000000..f6ba81475 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/rotated-flipped.less @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } +.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } +.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } + +.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } +.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/vendor/assets/components/font-awesome/less/stacked.less b/vendor/assets/components/font-awesome/less/stacked.less new file mode 100644 index 000000000..fc53fb0e7 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/stacked.less @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.@{fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.@{fa-css-prefix}-stack-1x { line-height: inherit; } +.@{fa-css-prefix}-stack-2x { font-size: 2em; } +.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/vendor/assets/components/font-awesome/less/variables.less b/vendor/assets/components/font-awesome/less/variables.less new file mode 100644 index 000000000..d526064c8 --- /dev/null +++ b/vendor/assets/components/font-awesome/less/variables.less @@ -0,0 +1,606 @@ +// Variables +// -------------------------- + +@fa-font-path: "../fonts"; +@fa-font-size-base: 14px; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-css-prefix: fa; +@fa-version: "4.3.0"; +@fa-border-color: #eee; +@fa-inverse: #fff; +@fa-li-width: (30em / 14); + +@fa-var-adjust: "\f042"; +@fa-var-adn: "\f170"; +@fa-var-align-center: "\f037"; +@fa-var-align-justify: "\f039"; +@fa-var-align-left: "\f036"; +@fa-var-align-right: "\f038"; +@fa-var-ambulance: "\f0f9"; +@fa-var-anchor: "\f13d"; +@fa-var-android: "\f17b"; +@fa-var-angellist: "\f209"; +@fa-var-angle-double-down: "\f103"; +@fa-var-angle-double-left: "\f100"; +@fa-var-angle-double-right: "\f101"; +@fa-var-angle-double-up: "\f102"; +@fa-var-angle-down: "\f107"; +@fa-var-angle-left: "\f104"; +@fa-var-angle-right: "\f105"; +@fa-var-angle-up: "\f106"; +@fa-var-apple: "\f179"; +@fa-var-archive: "\f187"; +@fa-var-area-chart: "\f1fe"; +@fa-var-arrow-circle-down: "\f0ab"; +@fa-var-arrow-circle-left: "\f0a8"; +@fa-var-arrow-circle-o-down: "\f01a"; +@fa-var-arrow-circle-o-left: "\f190"; +@fa-var-arrow-circle-o-right: "\f18e"; +@fa-var-arrow-circle-o-up: "\f01b"; +@fa-var-arrow-circle-right: "\f0a9"; +@fa-var-arrow-circle-up: "\f0aa"; +@fa-var-arrow-down: "\f063"; +@fa-var-arrow-left: "\f060"; +@fa-var-arrow-right: "\f061"; +@fa-var-arrow-up: "\f062"; +@fa-var-arrows: "\f047"; +@fa-var-arrows-alt: "\f0b2"; +@fa-var-arrows-h: "\f07e"; +@fa-var-arrows-v: "\f07d"; +@fa-var-asterisk: "\f069"; +@fa-var-at: "\f1fa"; +@fa-var-automobile: "\f1b9"; +@fa-var-backward: "\f04a"; +@fa-var-ban: "\f05e"; +@fa-var-bank: "\f19c"; +@fa-var-bar-chart: "\f080"; +@fa-var-bar-chart-o: "\f080"; +@fa-var-barcode: "\f02a"; +@fa-var-bars: "\f0c9"; +@fa-var-bed: "\f236"; +@fa-var-beer: "\f0fc"; +@fa-var-behance: "\f1b4"; +@fa-var-behance-square: "\f1b5"; +@fa-var-bell: "\f0f3"; +@fa-var-bell-o: "\f0a2"; +@fa-var-bell-slash: "\f1f6"; +@fa-var-bell-slash-o: "\f1f7"; +@fa-var-bicycle: "\f206"; +@fa-var-binoculars: "\f1e5"; +@fa-var-birthday-cake: "\f1fd"; +@fa-var-bitbucket: "\f171"; +@fa-var-bitbucket-square: "\f172"; +@fa-var-bitcoin: "\f15a"; +@fa-var-bold: "\f032"; +@fa-var-bolt: "\f0e7"; +@fa-var-bomb: "\f1e2"; +@fa-var-book: "\f02d"; +@fa-var-bookmark: "\f02e"; +@fa-var-bookmark-o: "\f097"; +@fa-var-briefcase: "\f0b1"; +@fa-var-btc: "\f15a"; +@fa-var-bug: "\f188"; +@fa-var-building: "\f1ad"; +@fa-var-building-o: "\f0f7"; +@fa-var-bullhorn: "\f0a1"; +@fa-var-bullseye: "\f140"; +@fa-var-bus: "\f207"; +@fa-var-buysellads: "\f20d"; +@fa-var-cab: "\f1ba"; +@fa-var-calculator: "\f1ec"; +@fa-var-calendar: "\f073"; +@fa-var-calendar-o: "\f133"; +@fa-var-camera: "\f030"; +@fa-var-camera-retro: "\f083"; +@fa-var-car: "\f1b9"; +@fa-var-caret-down: "\f0d7"; +@fa-var-caret-left: "\f0d9"; +@fa-var-caret-right: "\f0da"; +@fa-var-caret-square-o-down: "\f150"; +@fa-var-caret-square-o-left: "\f191"; +@fa-var-caret-square-o-right: "\f152"; +@fa-var-caret-square-o-up: "\f151"; +@fa-var-caret-up: "\f0d8"; +@fa-var-cart-arrow-down: "\f218"; +@fa-var-cart-plus: "\f217"; +@fa-var-cc: "\f20a"; +@fa-var-cc-amex: "\f1f3"; +@fa-var-cc-discover: "\f1f2"; +@fa-var-cc-mastercard: "\f1f1"; +@fa-var-cc-paypal: "\f1f4"; +@fa-var-cc-stripe: "\f1f5"; +@fa-var-cc-visa: "\f1f0"; +@fa-var-certificate: "\f0a3"; +@fa-var-chain: "\f0c1"; +@fa-var-chain-broken: "\f127"; +@fa-var-check: "\f00c"; +@fa-var-check-circle: "\f058"; +@fa-var-check-circle-o: "\f05d"; +@fa-var-check-square: "\f14a"; +@fa-var-check-square-o: "\f046"; +@fa-var-chevron-circle-down: "\f13a"; +@fa-var-chevron-circle-left: "\f137"; +@fa-var-chevron-circle-right: "\f138"; +@fa-var-chevron-circle-up: "\f139"; +@fa-var-chevron-down: "\f078"; +@fa-var-chevron-left: "\f053"; +@fa-var-chevron-right: "\f054"; +@fa-var-chevron-up: "\f077"; +@fa-var-child: "\f1ae"; +@fa-var-circle: "\f111"; +@fa-var-circle-o: "\f10c"; +@fa-var-circle-o-notch: "\f1ce"; +@fa-var-circle-thin: "\f1db"; +@fa-var-clipboard: "\f0ea"; +@fa-var-clock-o: "\f017"; +@fa-var-close: "\f00d"; +@fa-var-cloud: "\f0c2"; +@fa-var-cloud-download: "\f0ed"; +@fa-var-cloud-upload: "\f0ee"; +@fa-var-cny: "\f157"; +@fa-var-code: "\f121"; +@fa-var-code-fork: "\f126"; +@fa-var-codepen: "\f1cb"; +@fa-var-coffee: "\f0f4"; +@fa-var-cog: "\f013"; +@fa-var-cogs: "\f085"; +@fa-var-columns: "\f0db"; +@fa-var-comment: "\f075"; +@fa-var-comment-o: "\f0e5"; +@fa-var-comments: "\f086"; +@fa-var-comments-o: "\f0e6"; +@fa-var-compass: "\f14e"; +@fa-var-compress: "\f066"; +@fa-var-connectdevelop: "\f20e"; +@fa-var-copy: "\f0c5"; +@fa-var-copyright: "\f1f9"; +@fa-var-credit-card: "\f09d"; +@fa-var-crop: "\f125"; +@fa-var-crosshairs: "\f05b"; +@fa-var-css3: "\f13c"; +@fa-var-cube: "\f1b2"; +@fa-var-cubes: "\f1b3"; +@fa-var-cut: "\f0c4"; +@fa-var-cutlery: "\f0f5"; +@fa-var-dashboard: "\f0e4"; +@fa-var-dashcube: "\f210"; +@fa-var-database: "\f1c0"; +@fa-var-dedent: "\f03b"; +@fa-var-delicious: "\f1a5"; +@fa-var-desktop: "\f108"; +@fa-var-deviantart: "\f1bd"; +@fa-var-diamond: "\f219"; +@fa-var-digg: "\f1a6"; +@fa-var-dollar: "\f155"; +@fa-var-dot-circle-o: "\f192"; +@fa-var-download: "\f019"; +@fa-var-dribbble: "\f17d"; +@fa-var-dropbox: "\f16b"; +@fa-var-drupal: "\f1a9"; +@fa-var-edit: "\f044"; +@fa-var-eject: "\f052"; +@fa-var-ellipsis-h: "\f141"; +@fa-var-ellipsis-v: "\f142"; +@fa-var-empire: "\f1d1"; +@fa-var-envelope: "\f0e0"; +@fa-var-envelope-o: "\f003"; +@fa-var-envelope-square: "\f199"; +@fa-var-eraser: "\f12d"; +@fa-var-eur: "\f153"; +@fa-var-euro: "\f153"; +@fa-var-exchange: "\f0ec"; +@fa-var-exclamation: "\f12a"; +@fa-var-exclamation-circle: "\f06a"; +@fa-var-exclamation-triangle: "\f071"; +@fa-var-expand: "\f065"; +@fa-var-external-link: "\f08e"; +@fa-var-external-link-square: "\f14c"; +@fa-var-eye: "\f06e"; +@fa-var-eye-slash: "\f070"; +@fa-var-eyedropper: "\f1fb"; +@fa-var-facebook: "\f09a"; +@fa-var-facebook-f: "\f09a"; +@fa-var-facebook-official: "\f230"; +@fa-var-facebook-square: "\f082"; +@fa-var-fast-backward: "\f049"; +@fa-var-fast-forward: "\f050"; +@fa-var-fax: "\f1ac"; +@fa-var-female: "\f182"; +@fa-var-fighter-jet: "\f0fb"; +@fa-var-file: "\f15b"; +@fa-var-file-archive-o: "\f1c6"; +@fa-var-file-audio-o: "\f1c7"; +@fa-var-file-code-o: "\f1c9"; +@fa-var-file-excel-o: "\f1c3"; +@fa-var-file-image-o: "\f1c5"; +@fa-var-file-movie-o: "\f1c8"; +@fa-var-file-o: "\f016"; +@fa-var-file-pdf-o: "\f1c1"; +@fa-var-file-photo-o: "\f1c5"; +@fa-var-file-picture-o: "\f1c5"; +@fa-var-file-powerpoint-o: "\f1c4"; +@fa-var-file-sound-o: "\f1c7"; +@fa-var-file-text: "\f15c"; +@fa-var-file-text-o: "\f0f6"; +@fa-var-file-video-o: "\f1c8"; +@fa-var-file-word-o: "\f1c2"; +@fa-var-file-zip-o: "\f1c6"; +@fa-var-files-o: "\f0c5"; +@fa-var-film: "\f008"; +@fa-var-filter: "\f0b0"; +@fa-var-fire: "\f06d"; +@fa-var-fire-extinguisher: "\f134"; +@fa-var-flag: "\f024"; +@fa-var-flag-checkered: "\f11e"; +@fa-var-flag-o: "\f11d"; +@fa-var-flash: "\f0e7"; +@fa-var-flask: "\f0c3"; +@fa-var-flickr: "\f16e"; +@fa-var-floppy-o: "\f0c7"; +@fa-var-folder: "\f07b"; +@fa-var-folder-o: "\f114"; +@fa-var-folder-open: "\f07c"; +@fa-var-folder-open-o: "\f115"; +@fa-var-font: "\f031"; +@fa-var-forumbee: "\f211"; +@fa-var-forward: "\f04e"; +@fa-var-foursquare: "\f180"; +@fa-var-frown-o: "\f119"; +@fa-var-futbol-o: "\f1e3"; +@fa-var-gamepad: "\f11b"; +@fa-var-gavel: "\f0e3"; +@fa-var-gbp: "\f154"; +@fa-var-ge: "\f1d1"; +@fa-var-gear: "\f013"; +@fa-var-gears: "\f085"; +@fa-var-genderless: "\f1db"; +@fa-var-gift: "\f06b"; +@fa-var-git: "\f1d3"; +@fa-var-git-square: "\f1d2"; +@fa-var-github: "\f09b"; +@fa-var-github-alt: "\f113"; +@fa-var-github-square: "\f092"; +@fa-var-gittip: "\f184"; +@fa-var-glass: "\f000"; +@fa-var-globe: "\f0ac"; +@fa-var-google: "\f1a0"; +@fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-square: "\f0d4"; +@fa-var-google-wallet: "\f1ee"; +@fa-var-graduation-cap: "\f19d"; +@fa-var-gratipay: "\f184"; +@fa-var-group: "\f0c0"; +@fa-var-h-square: "\f0fd"; +@fa-var-hacker-news: "\f1d4"; +@fa-var-hand-o-down: "\f0a7"; +@fa-var-hand-o-left: "\f0a5"; +@fa-var-hand-o-right: "\f0a4"; +@fa-var-hand-o-up: "\f0a6"; +@fa-var-hdd-o: "\f0a0"; +@fa-var-header: "\f1dc"; +@fa-var-headphones: "\f025"; +@fa-var-heart: "\f004"; +@fa-var-heart-o: "\f08a"; +@fa-var-heartbeat: "\f21e"; +@fa-var-history: "\f1da"; +@fa-var-home: "\f015"; +@fa-var-hospital-o: "\f0f8"; +@fa-var-hotel: "\f236"; +@fa-var-html5: "\f13b"; +@fa-var-ils: "\f20b"; +@fa-var-image: "\f03e"; +@fa-var-inbox: "\f01c"; +@fa-var-indent: "\f03c"; +@fa-var-info: "\f129"; +@fa-var-info-circle: "\f05a"; +@fa-var-inr: "\f156"; +@fa-var-instagram: "\f16d"; +@fa-var-institution: "\f19c"; +@fa-var-ioxhost: "\f208"; +@fa-var-italic: "\f033"; +@fa-var-joomla: "\f1aa"; +@fa-var-jpy: "\f157"; +@fa-var-jsfiddle: "\f1cc"; +@fa-var-key: "\f084"; +@fa-var-keyboard-o: "\f11c"; +@fa-var-krw: "\f159"; +@fa-var-language: "\f1ab"; +@fa-var-laptop: "\f109"; +@fa-var-lastfm: "\f202"; +@fa-var-lastfm-square: "\f203"; +@fa-var-leaf: "\f06c"; +@fa-var-leanpub: "\f212"; +@fa-var-legal: "\f0e3"; +@fa-var-lemon-o: "\f094"; +@fa-var-level-down: "\f149"; +@fa-var-level-up: "\f148"; +@fa-var-life-bouy: "\f1cd"; +@fa-var-life-buoy: "\f1cd"; +@fa-var-life-ring: "\f1cd"; +@fa-var-life-saver: "\f1cd"; +@fa-var-lightbulb-o: "\f0eb"; +@fa-var-line-chart: "\f201"; +@fa-var-link: "\f0c1"; +@fa-var-linkedin: "\f0e1"; +@fa-var-linkedin-square: "\f08c"; +@fa-var-linux: "\f17c"; +@fa-var-list: "\f03a"; +@fa-var-list-alt: "\f022"; +@fa-var-list-ol: "\f0cb"; +@fa-var-list-ul: "\f0ca"; +@fa-var-location-arrow: "\f124"; +@fa-var-lock: "\f023"; +@fa-var-long-arrow-down: "\f175"; +@fa-var-long-arrow-left: "\f177"; +@fa-var-long-arrow-right: "\f178"; +@fa-var-long-arrow-up: "\f176"; +@fa-var-magic: "\f0d0"; +@fa-var-magnet: "\f076"; +@fa-var-mail-forward: "\f064"; +@fa-var-mail-reply: "\f112"; +@fa-var-mail-reply-all: "\f122"; +@fa-var-male: "\f183"; +@fa-var-map-marker: "\f041"; +@fa-var-mars: "\f222"; +@fa-var-mars-double: "\f227"; +@fa-var-mars-stroke: "\f229"; +@fa-var-mars-stroke-h: "\f22b"; +@fa-var-mars-stroke-v: "\f22a"; +@fa-var-maxcdn: "\f136"; +@fa-var-meanpath: "\f20c"; +@fa-var-medium: "\f23a"; +@fa-var-medkit: "\f0fa"; +@fa-var-meh-o: "\f11a"; +@fa-var-mercury: "\f223"; +@fa-var-microphone: "\f130"; +@fa-var-microphone-slash: "\f131"; +@fa-var-minus: "\f068"; +@fa-var-minus-circle: "\f056"; +@fa-var-minus-square: "\f146"; +@fa-var-minus-square-o: "\f147"; +@fa-var-mobile: "\f10b"; +@fa-var-mobile-phone: "\f10b"; +@fa-var-money: "\f0d6"; +@fa-var-moon-o: "\f186"; +@fa-var-mortar-board: "\f19d"; +@fa-var-motorcycle: "\f21c"; +@fa-var-music: "\f001"; +@fa-var-navicon: "\f0c9"; +@fa-var-neuter: "\f22c"; +@fa-var-newspaper-o: "\f1ea"; +@fa-var-openid: "\f19b"; +@fa-var-outdent: "\f03b"; +@fa-var-pagelines: "\f18c"; +@fa-var-paint-brush: "\f1fc"; +@fa-var-paper-plane: "\f1d8"; +@fa-var-paper-plane-o: "\f1d9"; +@fa-var-paperclip: "\f0c6"; +@fa-var-paragraph: "\f1dd"; +@fa-var-paste: "\f0ea"; +@fa-var-pause: "\f04c"; +@fa-var-paw: "\f1b0"; +@fa-var-paypal: "\f1ed"; +@fa-var-pencil: "\f040"; +@fa-var-pencil-square: "\f14b"; +@fa-var-pencil-square-o: "\f044"; +@fa-var-phone: "\f095"; +@fa-var-phone-square: "\f098"; +@fa-var-photo: "\f03e"; +@fa-var-picture-o: "\f03e"; +@fa-var-pie-chart: "\f200"; +@fa-var-pied-piper: "\f1a7"; +@fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pinterest: "\f0d2"; +@fa-var-pinterest-p: "\f231"; +@fa-var-pinterest-square: "\f0d3"; +@fa-var-plane: "\f072"; +@fa-var-play: "\f04b"; +@fa-var-play-circle: "\f144"; +@fa-var-play-circle-o: "\f01d"; +@fa-var-plug: "\f1e6"; +@fa-var-plus: "\f067"; +@fa-var-plus-circle: "\f055"; +@fa-var-plus-square: "\f0fe"; +@fa-var-plus-square-o: "\f196"; +@fa-var-power-off: "\f011"; +@fa-var-print: "\f02f"; +@fa-var-puzzle-piece: "\f12e"; +@fa-var-qq: "\f1d6"; +@fa-var-qrcode: "\f029"; +@fa-var-question: "\f128"; +@fa-var-question-circle: "\f059"; +@fa-var-quote-left: "\f10d"; +@fa-var-quote-right: "\f10e"; +@fa-var-ra: "\f1d0"; +@fa-var-random: "\f074"; +@fa-var-rebel: "\f1d0"; +@fa-var-recycle: "\f1b8"; +@fa-var-reddit: "\f1a1"; +@fa-var-reddit-square: "\f1a2"; +@fa-var-refresh: "\f021"; +@fa-var-remove: "\f00d"; +@fa-var-renren: "\f18b"; +@fa-var-reorder: "\f0c9"; +@fa-var-repeat: "\f01e"; +@fa-var-reply: "\f112"; +@fa-var-reply-all: "\f122"; +@fa-var-retweet: "\f079"; +@fa-var-rmb: "\f157"; +@fa-var-road: "\f018"; +@fa-var-rocket: "\f135"; +@fa-var-rotate-left: "\f0e2"; +@fa-var-rotate-right: "\f01e"; +@fa-var-rouble: "\f158"; +@fa-var-rss: "\f09e"; +@fa-var-rss-square: "\f143"; +@fa-var-rub: "\f158"; +@fa-var-ruble: "\f158"; +@fa-var-rupee: "\f156"; +@fa-var-save: "\f0c7"; +@fa-var-scissors: "\f0c4"; +@fa-var-search: "\f002"; +@fa-var-search-minus: "\f010"; +@fa-var-search-plus: "\f00e"; +@fa-var-sellsy: "\f213"; +@fa-var-send: "\f1d8"; +@fa-var-send-o: "\f1d9"; +@fa-var-server: "\f233"; +@fa-var-share: "\f064"; +@fa-var-share-alt: "\f1e0"; +@fa-var-share-alt-square: "\f1e1"; +@fa-var-share-square: "\f14d"; +@fa-var-share-square-o: "\f045"; +@fa-var-shekel: "\f20b"; +@fa-var-sheqel: "\f20b"; +@fa-var-shield: "\f132"; +@fa-var-ship: "\f21a"; +@fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-cart: "\f07a"; +@fa-var-sign-in: "\f090"; +@fa-var-sign-out: "\f08b"; +@fa-var-signal: "\f012"; +@fa-var-simplybuilt: "\f215"; +@fa-var-sitemap: "\f0e8"; +@fa-var-skyatlas: "\f216"; +@fa-var-skype: "\f17e"; +@fa-var-slack: "\f198"; +@fa-var-sliders: "\f1de"; +@fa-var-slideshare: "\f1e7"; +@fa-var-smile-o: "\f118"; +@fa-var-soccer-ball-o: "\f1e3"; +@fa-var-sort: "\f0dc"; +@fa-var-sort-alpha-asc: "\f15d"; +@fa-var-sort-alpha-desc: "\f15e"; +@fa-var-sort-amount-asc: "\f160"; +@fa-var-sort-amount-desc: "\f161"; +@fa-var-sort-asc: "\f0de"; +@fa-var-sort-desc: "\f0dd"; +@fa-var-sort-down: "\f0dd"; +@fa-var-sort-numeric-asc: "\f162"; +@fa-var-sort-numeric-desc: "\f163"; +@fa-var-sort-up: "\f0de"; +@fa-var-soundcloud: "\f1be"; +@fa-var-space-shuttle: "\f197"; +@fa-var-spinner: "\f110"; +@fa-var-spoon: "\f1b1"; +@fa-var-spotify: "\f1bc"; +@fa-var-square: "\f0c8"; +@fa-var-square-o: "\f096"; +@fa-var-stack-exchange: "\f18d"; +@fa-var-stack-overflow: "\f16c"; +@fa-var-star: "\f005"; +@fa-var-star-half: "\f089"; +@fa-var-star-half-empty: "\f123"; +@fa-var-star-half-full: "\f123"; +@fa-var-star-half-o: "\f123"; +@fa-var-star-o: "\f006"; +@fa-var-steam: "\f1b6"; +@fa-var-steam-square: "\f1b7"; +@fa-var-step-backward: "\f048"; +@fa-var-step-forward: "\f051"; +@fa-var-stethoscope: "\f0f1"; +@fa-var-stop: "\f04d"; +@fa-var-street-view: "\f21d"; +@fa-var-strikethrough: "\f0cc"; +@fa-var-stumbleupon: "\f1a4"; +@fa-var-stumbleupon-circle: "\f1a3"; +@fa-var-subscript: "\f12c"; +@fa-var-subway: "\f239"; +@fa-var-suitcase: "\f0f2"; +@fa-var-sun-o: "\f185"; +@fa-var-superscript: "\f12b"; +@fa-var-support: "\f1cd"; +@fa-var-table: "\f0ce"; +@fa-var-tablet: "\f10a"; +@fa-var-tachometer: "\f0e4"; +@fa-var-tag: "\f02b"; +@fa-var-tags: "\f02c"; +@fa-var-tasks: "\f0ae"; +@fa-var-taxi: "\f1ba"; +@fa-var-tencent-weibo: "\f1d5"; +@fa-var-terminal: "\f120"; +@fa-var-text-height: "\f034"; +@fa-var-text-width: "\f035"; +@fa-var-th: "\f00a"; +@fa-var-th-large: "\f009"; +@fa-var-th-list: "\f00b"; +@fa-var-thumb-tack: "\f08d"; +@fa-var-thumbs-down: "\f165"; +@fa-var-thumbs-o-down: "\f088"; +@fa-var-thumbs-o-up: "\f087"; +@fa-var-thumbs-up: "\f164"; +@fa-var-ticket: "\f145"; +@fa-var-times: "\f00d"; +@fa-var-times-circle: "\f057"; +@fa-var-times-circle-o: "\f05c"; +@fa-var-tint: "\f043"; +@fa-var-toggle-down: "\f150"; +@fa-var-toggle-left: "\f191"; +@fa-var-toggle-off: "\f204"; +@fa-var-toggle-on: "\f205"; +@fa-var-toggle-right: "\f152"; +@fa-var-toggle-up: "\f151"; +@fa-var-train: "\f238"; +@fa-var-transgender: "\f224"; +@fa-var-transgender-alt: "\f225"; +@fa-var-trash: "\f1f8"; +@fa-var-trash-o: "\f014"; +@fa-var-tree: "\f1bb"; +@fa-var-trello: "\f181"; +@fa-var-trophy: "\f091"; +@fa-var-truck: "\f0d1"; +@fa-var-try: "\f195"; +@fa-var-tty: "\f1e4"; +@fa-var-tumblr: "\f173"; +@fa-var-tumblr-square: "\f174"; +@fa-var-turkish-lira: "\f195"; +@fa-var-twitch: "\f1e8"; +@fa-var-twitter: "\f099"; +@fa-var-twitter-square: "\f081"; +@fa-var-umbrella: "\f0e9"; +@fa-var-underline: "\f0cd"; +@fa-var-undo: "\f0e2"; +@fa-var-university: "\f19c"; +@fa-var-unlink: "\f127"; +@fa-var-unlock: "\f09c"; +@fa-var-unlock-alt: "\f13e"; +@fa-var-unsorted: "\f0dc"; +@fa-var-upload: "\f093"; +@fa-var-usd: "\f155"; +@fa-var-user: "\f007"; +@fa-var-user-md: "\f0f0"; +@fa-var-user-plus: "\f234"; +@fa-var-user-secret: "\f21b"; +@fa-var-user-times: "\f235"; +@fa-var-users: "\f0c0"; +@fa-var-venus: "\f221"; +@fa-var-venus-double: "\f226"; +@fa-var-venus-mars: "\f228"; +@fa-var-viacoin: "\f237"; +@fa-var-video-camera: "\f03d"; +@fa-var-vimeo-square: "\f194"; +@fa-var-vine: "\f1ca"; +@fa-var-vk: "\f189"; +@fa-var-volume-down: "\f027"; +@fa-var-volume-off: "\f026"; +@fa-var-volume-up: "\f028"; +@fa-var-warning: "\f071"; +@fa-var-wechat: "\f1d7"; +@fa-var-weibo: "\f18a"; +@fa-var-weixin: "\f1d7"; +@fa-var-whatsapp: "\f232"; +@fa-var-wheelchair: "\f193"; +@fa-var-wifi: "\f1eb"; +@fa-var-windows: "\f17a"; +@fa-var-won: "\f159"; +@fa-var-wordpress: "\f19a"; +@fa-var-wrench: "\f0ad"; +@fa-var-xing: "\f168"; +@fa-var-xing-square: "\f169"; +@fa-var-yahoo: "\f19e"; +@fa-var-yelp: "\f1e9"; +@fa-var-yen: "\f157"; +@fa-var-youtube: "\f167"; +@fa-var-youtube-play: "\f16a"; +@fa-var-youtube-square: "\f166"; + diff --git a/vendor/assets/components/font-awesome/scss/_animated.scss b/vendor/assets/components/font-awesome/scss/_animated.scss new file mode 100644 index 000000000..8a020dbff --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/vendor/assets/components/font-awesome/scss/_bordered-pulled.scss b/vendor/assets/components/font-awesome/scss/_bordered-pulled.scss new file mode 100644 index 000000000..9d3fdf3a0 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_bordered-pulled.scss @@ -0,0 +1,16 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/vendor/assets/components/font-awesome/scss/_core.scss b/vendor/assets/components/font-awesome/scss/_core.scss new file mode 100644 index 000000000..5a2db9d56 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_core.scss @@ -0,0 +1,13 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} diff --git a/vendor/assets/components/font-awesome/scss/_fixed-width.scss b/vendor/assets/components/font-awesome/scss/_fixed-width.scss new file mode 100644 index 000000000..b221c9813 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/vendor/assets/components/font-awesome/scss/_icons.scss b/vendor/assets/components/font-awesome/scss/_icons.scss new file mode 100644 index 000000000..fbcfe8123 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_icons.scss @@ -0,0 +1,596 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-genderless:before, +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } diff --git a/vendor/assets/components/font-awesome/scss/_larger.scss b/vendor/assets/components/font-awesome/scss/_larger.scss new file mode 100644 index 000000000..41e9a8184 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/vendor/assets/components/font-awesome/scss/_list.scss b/vendor/assets/components/font-awesome/scss/_list.scss new file mode 100644 index 000000000..7d1e4d54d --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/vendor/assets/components/font-awesome/scss/_mixins.scss b/vendor/assets/components/font-awesome/scss/_mixins.scss new file mode 100644 index 000000000..6b7f16093 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_mixins.scss @@ -0,0 +1,27 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} diff --git a/vendor/assets/components/font-awesome/scss/_path.scss b/vendor/assets/components/font-awesome/scss/_path.scss new file mode 100644 index 000000000..bb457c23a --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/vendor/assets/components/font-awesome/scss/_rotated-flipped.scss b/vendor/assets/components/font-awesome/scss/_rotated-flipped.scss new file mode 100644 index 000000000..a3558fd09 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/vendor/assets/components/font-awesome/scss/_stacked.scss b/vendor/assets/components/font-awesome/scss/_stacked.scss new file mode 100644 index 000000000..aef740366 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/vendor/assets/components/font-awesome/scss/_variables.scss b/vendor/assets/components/font-awesome/scss/_variables.scss new file mode 100644 index 000000000..9b7210e23 --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/_variables.scss @@ -0,0 +1,606 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.3.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-ambulance: "\f0f9"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-ban: "\f05e"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-o: "\f133"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-credit-card: "\f09d"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edit: "\f044"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-square: "\f199"; +$fa-var-eraser: "\f12d"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f1db"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-html5: "\f13b"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map-marker: "\f041"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-openid: "\f19b"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-stop: "\f04d"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wifi: "\f1eb"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-yahoo: "\f19e"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/vendor/assets/components/font-awesome/scss/font-awesome.scss b/vendor/assets/components/font-awesome/scss/font-awesome.scss new file mode 100644 index 000000000..388ac6b0c --- /dev/null +++ b/vendor/assets/components/font-awesome/scss/font-awesome.scss @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; diff --git a/vendor/assets/components/summernote/.bower.json b/vendor/assets/components/summernote/.bower.json new file mode 100644 index 000000000..0ddc5c47c --- /dev/null +++ b/vendor/assets/components/summernote/.bower.json @@ -0,0 +1,30 @@ +{ + "name": "summernote", + "version": "0.6.6", + "main": [ + "./dist/summernote.js", + "./dist/summernote.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "jquery": ">= 1.9.0", + "bootstrap": ">= 3.0.1", + "font-awesome": ">=4.2.0" + }, + "homepage": "https://github.com/summernote/summernote", + "_release": "0.6.6", + "_resolution": { + "type": "version", + "tag": "v0.6.6", + "commit": "fd6190a859d6a496dd25b903e5272ca5acd36e0f" + }, + "_source": "git://github.com/summernote/summernote.git", + "_target": "~0.6.6", + "_originalSource": "summernote" +} \ No newline at end of file diff --git a/vendor/assets/components/summernote/CONTRIBUTING.md b/vendor/assets/components/summernote/CONTRIBUTING.md new file mode 100644 index 000000000..1947a0274 --- /dev/null +++ b/vendor/assets/components/summernote/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# Thanks for contributing to [Summernote](http://summernote.org)! + +## [Create Issue](#issues) or [Create PR](#pull-requests) + + +# issues + +Please include one of the following with your issue: + +- [ ] [gif from www.recordit.co](www.recordit.co) +- [ ] screenshot of issue +- [ ] steps to reproduce. + +# pull-requests + +### If you would like to contribute code, please use this PR template(copy/paste into github PR) + +**go ahead and delete any lines that aren't relevant** + +```markdown +#### What's this PR do? + +- awesome stuff +- really cool feature +- refactor X + +#### Where should the reviewer start? + +- start on the src/summernote.js + +#### How should this be manually tested? + +- click here and here + +#### Any background context you want to provide? + +- the gem needed to be updated... yada yada + +#### What are the relevant tickets? + +#### Screenshots (if for frontend) + + +### Checklist +- [ ] added relevant tests +- [ ] didn't break anything +- [ ] ... + +``` diff --git a/vendor/assets/components/summernote/Gruntfile.js b/vendor/assets/components/summernote/Gruntfile.js new file mode 100644 index 000000000..72406b2ed --- /dev/null +++ b/vendor/assets/components/summernote/Gruntfile.js @@ -0,0 +1,170 @@ +module.exports = function (grunt) { + 'use strict'; + + /** + * read optional JSON from filepath + * @param {String} filepath + * @return {Object} + */ + var readOptionalJSON = function (filepath) { + var data = {}; + try { + data = grunt.file.readJSON(filepath); + // The concatenated file won't pass onevar + // But our modules can + delete data.onever; + } catch (e) { } + return data; + }; + + grunt.initConfig({ + // package File + pkg: grunt.file.readJSON('package.json'), + + // bulid source(grunt-build.js). + build: { + all: { + baseUrl: 'src/js', // base url + startFile: 'intro.js', // intro part + endFile: 'outro.js', // outro part + outFile: 'dist/summernote.js' // out file + } + }, + + // for javascript convention. + jshint: { + all: { + src: [ + 'src/**/*.js', + 'plugin/**/*.js', + 'lang/**/*.js', + 'Gruntfile.js', + 'test/**/*.js', + 'build/*.js' + ], + options: { + jshintrc: true + } + }, + dist: { + src: 'dist/summernote.js', + options: readOptionalJSON('.jshintrc') + } + }, + + // qunit: javascript unit test. + qunit: { + all: [ 'test/*.html' ] + }, + + // uglify: minify javascript + uglify: { + all: { + files: { 'dist/summernote.min.js': ['dist/summernote.js'] } + } + }, + + // recess: minify stylesheets + recess: { + dist: { + options: { compile: true, compress: true }, + files: { + 'dist/summernote.css': ['src/less/summernote.less'] + } + } + }, + + // compress: summernote-{{version}}-dist.zip + compress: { + main: { + options: { + archive: function () { + return 'dist/summernote-{{version}}-dist.zip'.replace( + '{{version}}', + grunt.config('pkg.version') + ); + } + }, + files: [{ + expand: true, + src: [ + 'dist/*.js', + 'dist/summernote.css' + ] + }, { + src: ['plugin/*.js'], + dest: 'dist/' + }] + } + }, + + // connect configuration. + connect: { + all: { + options: { + port: 3000, + livereload: true, + middleware: function (connect, options, middlewares) { + var base = options.base[0]; + middlewares = middlewares || []; + return middlewares.concat([ + require('connect-livereload')(), // livereload middleware + connect['static'](base), // serve static files + connect.directory(base) // make empty directories browsable + ]); + }, + open: 'http://localhost:3000' + } + } + }, + + // watch source code change + watch: { + all: { + files: ['src/less/*.less', 'src/js/**/*.js'], + tasks: ['recess', 'jshint', 'qunit'], + options: { + livereload: true + } + } + }, + + // Meteor commands to test and publish package + exec: { + 'meteor-test': { + command: 'meteor/runtests.sh' + }, + 'meteor-publish': { + command: 'meteor/publish.sh' + } + } + + }); + + // load all tasks from the grunt plugins used in this file + require('load-grunt-tasks')(grunt); + + // load all grunts/*.js + grunt.loadTasks('grunts'); + + // server: runt server for development + grunt.registerTask('server', ['connect', 'watch']); + + // test: unit test on test folder + grunt.registerTask('test', ['jshint', 'qunit']); + + // dist: make dist files + grunt.registerTask('dist', ['build', 'test', 'uglify', 'recess']); + + // deploy: compress dist files + grunt.registerTask('deploy', ['dist', 'compress']); + + // default: server + grunt.registerTask('default', ['server']); + + // Meteor tasks + grunt.registerTask('meteor-test', 'exec:meteor-test'); + grunt.registerTask('meteor-publish', 'exec:meteor-publish'); + grunt.registerTask('meteor', ['meteor-test', 'meteor-publish']); + +}; diff --git a/vendor/assets/components/summernote/History.md b/vendor/assets/components/summernote/History.md new file mode 100644 index 000000000..d27d0c271 --- /dev/null +++ b/vendor/assets/components/summernote/History.md @@ -0,0 +1,79 @@ +### Change Log + +#### v0.6.4 ~ v0.6.5 2015-04-26 +* Support more range API: range.pasteHTML, range.getWordRange +* Merge summernote-ext-fontstyle.js plugin with base code +* Bugfix : #1003, #1026, #1038, some of #1012 + +#### v0.6.3 2015-04-08 +* Support external API access +* Support callbacks with jquery custom event. + +#### v0.6.2 2015-03-14 +* Fixed text drag and drop bug. + +#### v0.6.1 2015-02-08 +* Fixed bugs about links, bullets and ranges. + +#### v0.6.0 2014-11-29 +* Plugin system +* Extract fontstyle and video plugins from base code. + +#### v0.5.9 2014-09-21 +* Dom Editing: insert(Un)OrderedList, indent/outdent +* History in a line. + +#### v0.5.8 2014-08-31 +* Remove `autoFormatRange` option +* Fixed `onChange` issues + +#### v0.5.7 ~ v0.5.4 2014-08-29 ~ 2014-08-23 +* Dom editing: insertPara, insertNode + +#### v0.5.3 2014-07-25 +* Extract codemirror.autoFormatOnStart option +* Bug patch (createLink) + +#### v0.5.2 2014-07-20 +* Air Mode +* And bug patch (scroll, createLink, ...) + +#### v0.5.1 2014-03-16 +* Support 15 Languages(https://github.com/HackerWins/summernote/tree/master/lang) +* Add local-server for develop summernote. +* Font style: Font-Family +* And Bug patch. + +#### v0.5 2013-12-29 +* Support both Font-Awesome 3.x and 4.x +* CodeMirror as Codeview +* Insert Video (by cdownie) +* Support 5 Languages(by hendrismit, tschiela, inomies, cverond) +* Restructuring: jQuery build pattern + +#### v0.4 2013-11-01 +* Support both Bootstrap 3.0 and 2.x +* Fullscreen +* Codeview +* Image Upload callback + +#### v0.3 2013-09-01 +* Bugs(image upload, fontsize, tab, recent color, ...) +* Help dialog(keyboard shortcut) +* Init options(event callbacks, custom toolbar) +* Resize bar +* Support IE8 Beta(some range bugs, can't insert Image) + +#### v0.2, 2013-08-01 +* Undo/Redo +* Image sizing handle and popover +* Support standalone css +* Support Multiple Editor +* Remove jQuery.curstyles dependency + +#### v0.1, 2013-07-01 +* Font style: size, color, bold, italic, underline, remove font style +* Para style: bullet, align, outdent, indent, line height +* Image: drag & drop, dialog +* Link: popover and dialog +* Table: create table with dimension picker diff --git a/vendor/assets/components/summernote/README.md b/vendor/assets/components/summernote/README.md new file mode 100644 index 000000000..9f86df9de --- /dev/null +++ b/vendor/assets/components/summernote/README.md @@ -0,0 +1,153 @@ +# Summernote +Super simple WYSIWYG Editor using Bootstrap (3.0 and 2.x). + +[![Build Status](https://secure.travis-ci.org/summernote/summernote.png)](http://travis-ci.org/summernote/summernote) + +### Summernote +Summernote is a JavaScript library that helps you create WYSIWYG editors online. + +Home Page: http://summernote.org + +### Why Summernote? + +Summernote has a few special features: + +* Paste images from clipboard +* Saves images directly in the content of the field using base64 encoding, so you don't need to implement image handling at all +* Simple UI +* Interactive WYSIWYG editing +* Handy integration with server + +#### Inspired by +* Gmail's WYSIWYG editor (http://www.gmail.com) +* Redactor (http://imperavi.com/redactor/) + +### Installation and dependencies + +Summernote uses opensource libraries: [jQuery](http://jquery.com/), [Bootstrap](http://getbootstrap.com), [Font Awesome](https://github.com/FortAwesome/Font-Awesome). + +For [Meteor](http://github.com/meteor/meteor), just run `meteor add summernote:summernote`. More info in the [Meteor README](meteor/README.md). + +For other/no frameworks: + +#### 1. include JS/CSS + +Include the following code in the `` tag of your HTML: + +```html + + + + + + + + + +``` + +#### 2. target elements + +Then place a `div` tag somewhere in the `body` tag. This element will be replaced with the summernote editor. + +```html +
Hello Summernote
+``` + +#### 3. summernote + +Finally, run this script after the DOM is ready: + +```javascript +$(document).ready(function() { + $('#summernote').summernote(); +}); +``` + +### API + +`code` - get the HTML source code underlying the text in the editor: + +```javascript +var sHTML = $('#summernote').code(); +``` + +`Destroy` summernote: + +```javascript +$('#summernote').destroy(); +``` + +### Supported platforms + +Any modern browser: Safari, Chrome, Firefox, Opera, Internet Explorer 9+. + +### Upcoming Features +* Responsive toolbar +* Table: Handles (sizing, selection) and popover +* IE8 Support +* Clipboard (you can paste images already) +* Media object selection + + +### Developer information + +#### structure of summernote.js + +``` +summernote.js - Renderer.js (Generate markup) - Locale.js (Locale object) + ㄴEventHandler.js - Editor.js (Abstract editor) + ㄴStyle.js (Style Getter and Setter) + ㄴHistory.js (Store on jQuery.data) + ㄴToolbar.js (Toolbar module) + ㄴPopover.js (Popover module) + ㄴHandle.js (Handle module) + ㄴDialog.js (Dialog module) +-----------------------------Core Script----------------------------- + agent.js (agent information) + async.js (aysnc utility) + key.js (keycode object) + dom.js (dom functions) + list.js (list functions) + range.js (W3CRange extention) +--------------------------------------------------------------------- +``` + +#### build summernote +```bash +# grunt-cli is need by grunt; you might have this installed already +npm install -g grunt-cli +npm install + +# build full version of summernote: dist/summernote.js +grunt build + +# generate minified copy: dist/summernote.min.js, dist/summernote.css +grunt dist +``` +At this point, you should now have a `build/` directory populated with everything you need to use summernote. + +#### test summernote +run tests with PhantomJS +```bash +grunt test +``` + +#### start local server for developing summernote. +run local server with connect and watch. +```bash +# this will open a browser on http://localhost:3000. +grunt server +# If you change source code, automatically reload your page. +``` + +#### Coding convention +* JSHint: http://www.jshint.com/about/ +* JSHint rule: https://github.com/summernote/summernote/blob/master/.jshintrc + +### Contacts +* Email: susukang98@gmail.com +* Twitter: http://twitter.com/hackerwins + +### License +summernote may be freely distributed under the MIT license. diff --git a/vendor/assets/components/summernote/bower.json b/vendor/assets/components/summernote/bower.json new file mode 100644 index 000000000..0e2afe13b --- /dev/null +++ b/vendor/assets/components/summernote/bower.json @@ -0,0 +1,20 @@ +{ + "name": "summernote", + "version": "0.6.6", + "main": [ + "./dist/summernote.js", + "./dist/summernote.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "jquery": ">= 1.9.0", + "bootstrap": ">= 3.0.1", + "font-awesome": ">=4.2.0" + } +} diff --git a/vendor/assets/components/summernote/composer.json b/vendor/assets/components/summernote/composer.json new file mode 100644 index 000000000..908223981 --- /dev/null +++ b/vendor/assets/components/summernote/composer.json @@ -0,0 +1,20 @@ +{ + "name": "summernote/summernote", + "description": "Super Simple WYSIWYG Editor on Bootstrap(3.0 and 2.x).", + "type": "library", + "keywords": [ + "wysiwyg" + ], + "homepage": "http://summernote.org/", + "license": "MIT", + "authors": [ + { + "name": "Alan", + "email": "susukang98@gmail.com", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/summernote/summernote/issues" + } +} diff --git a/vendor/assets/components/summernote/dist/summernote-bs2.css b/vendor/assets/components/summernote/dist/summernote-bs2.css new file mode 100644 index 000000000..e4419c215 --- /dev/null +++ b/vendor/assets/components/summernote/dist/summernote-bs2.css @@ -0,0 +1,5268 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.note-editor { + /* Allow for input prepend/append in search forms */ + + /* White icons with optional class, or on hover/focus/active states of certain elements */ + + /* move down carets for tabs */ + +} +.note-editor .clearfix { + *zoom: 1; +} +.note-editor .clearfix:before, +.note-editor .clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .clearfix:after { + clear: both; +} +.note-editor .hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.note-editor .input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor article, +.note-editor aside, +.note-editor details, +.note-editor figcaption, +.note-editor figure, +.note-editor footer, +.note-editor header, +.note-editor hgroup, +.note-editor nav, +.note-editor section { + display: block; +} +.note-editor audio, +.note-editor canvas, +.note-editor video { + display: inline-block; + *display: inline; + *zoom: 1; +} +.note-editor audio:not([controls]) { + display: none; +} +.note-editor html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +.note-editor a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor a:hover, +.note-editor a:active { + outline: 0; +} +.note-editor sub, +.note-editor sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +.note-editor sup { + top: -0.5em; +} +.note-editor sub { + bottom: -0.25em; +} +.note-editor img { + /* Responsive images (ensure images don't scale beyond their parents) */ + + max-width: 100%; + /* Part 1: Set a maxium relative to the parent */ + + width: auto\9; + /* IE7-8 need help adjusting responsive images */ + + height: auto; + /* Part 2: Scale the height according to the width, otherwise you get stretching */ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +.note-editor #map_canvas img, +.note-editor .google-maps img { + max-width: none; +} +.note-editor button, +.note-editor input, +.note-editor select, +.note-editor textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +.note-editor button, +.note-editor input { + *overflow: visible; + line-height: normal; +} +.note-editor button::-moz-focus-inner, +.note-editor input::-moz-focus-inner { + padding: 0; + border: 0; +} +.note-editor button, +.note-editor html input[type="button"], +.note-editor input[type="reset"], +.note-editor input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +.note-editor label, +.note-editor select, +.note-editor button, +.note-editor input[type="button"], +.note-editor input[type="reset"], +.note-editor input[type="submit"], +.note-editor input[type="radio"], +.note-editor input[type="checkbox"] { + cursor: pointer; +} +.note-editor input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +.note-editor input[type="search"]::-webkit-search-decoration, +.note-editor input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +.note-editor textarea { + overflow: auto; + vertical-align: top; +} +@media print { + .note-editor * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + .note-editor a, + .note-editor a:visited { + text-decoration: underline; + } + .note-editor a[href]:after { + content: " (" attr(href) ")"; + } + .note-editor abbr[title]:after { + content: " (" attr(title) ")"; + } + .note-editor .ir a:after, + .note-editor a[href^="javascript:"]:after, + .note-editor a[href^="#"]:after { + content: ""; + } + .note-editor pre, + .note-editor blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + .note-editor thead { + display: table-header-group; + } + .note-editor tr, + .note-editor img { + page-break-inside: avoid; + } + .note-editor img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + .note-editor p, + .note-editor h2, + .note-editor h3 { + orphans: 3; + widows: 3; + } + .note-editor h2, + .note-editor h3 { + page-break-after: avoid; + } +} +.note-editor body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} +.note-editor a { + color: #0088cc; + text-decoration: none; +} +.note-editor a:hover, +.note-editor a:focus { + color: #005580; + text-decoration: underline; +} +.note-editor .img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.note-editor .img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} +.note-editor .img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} +.note-editor .row { + margin-left: -20px; + *zoom: 1; +} +.note-editor .row:before, +.note-editor .row:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .row:after { + clear: both; +} +.note-editor [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} +.note-editor .container, +.note-editor .navbar-static-top .container, +.note-editor .navbar-fixed-top .container, +.note-editor .navbar-fixed-bottom .container { + width: 940px; +} +.note-editor .span12 { + width: 940px; +} +.note-editor .span11 { + width: 860px; +} +.note-editor .span10 { + width: 780px; +} +.note-editor .span9 { + width: 700px; +} +.note-editor .span8 { + width: 620px; +} +.note-editor .span7 { + width: 540px; +} +.note-editor .span6 { + width: 460px; +} +.note-editor .span5 { + width: 380px; +} +.note-editor .span4 { + width: 300px; +} +.note-editor .span3 { + width: 220px; +} +.note-editor .span2 { + width: 140px; +} +.note-editor .span1 { + width: 60px; +} +.note-editor .offset12 { + margin-left: 980px; +} +.note-editor .offset11 { + margin-left: 900px; +} +.note-editor .offset10 { + margin-left: 820px; +} +.note-editor .offset9 { + margin-left: 740px; +} +.note-editor .offset8 { + margin-left: 660px; +} +.note-editor .offset7 { + margin-left: 580px; +} +.note-editor .offset6 { + margin-left: 500px; +} +.note-editor .offset5 { + margin-left: 420px; +} +.note-editor .offset4 { + margin-left: 340px; +} +.note-editor .offset3 { + margin-left: 260px; +} +.note-editor .offset2 { + margin-left: 180px; +} +.note-editor .offset1 { + margin-left: 100px; +} +.note-editor .row-fluid { + width: 100%; + *zoom: 1; +} +.note-editor .row-fluid:before, +.note-editor .row-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .row-fluid:after { + clear: both; +} +.note-editor .row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; +} +.note-editor .row-fluid [class*="span"]:first-child { + margin-left: 0; +} +.note-editor .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} +.note-editor .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} +.note-editor .row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} +.note-editor .row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} +.note-editor .row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} +.note-editor .row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} +.note-editor .row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} +.note-editor .row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} +.note-editor .row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} +.note-editor .row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} +.note-editor .row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} +.note-editor .row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} +.note-editor .row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} +.note-editor .row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} +.note-editor .row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} +.note-editor .row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} +.note-editor .row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} +.note-editor .row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} +.note-editor .row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} +.note-editor .row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} +.note-editor .row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} +.note-editor .row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} +.note-editor .row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} +.note-editor .row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} +.note-editor .row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} +.note-editor .row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} +.note-editor .row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} +.note-editor .row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} +.note-editor .row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} +.note-editor .row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} +.note-editor .row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} +.note-editor .row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} +.note-editor .row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} +.note-editor .row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} +.note-editor .row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} +.note-editor .row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} +.note-editor .row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} +.note-editor [class*="span"].hide, +.note-editor .row-fluid [class*="span"].hide { + display: none; +} +.note-editor [class*="span"].pull-right, +.note-editor .row-fluid [class*="span"].pull-right { + float: right; +} +.note-editor .container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} +.note-editor .container:before, +.note-editor .container:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .container:after { + clear: both; +} +.note-editor .container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} +.note-editor .container-fluid:before, +.note-editor .container-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .container-fluid:after { + clear: both; +} +.note-editor p { + margin: 0 0 10px; +} +.note-editor .lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} +.note-editor small { + font-size: 85%; +} +.note-editor strong { + font-weight: bold; +} +.note-editor em { + font-style: italic; +} +.note-editor cite { + font-style: normal; +} +.note-editor .muted { + color: #999999; +} +.note-editor a.muted:hover, +.note-editor a.muted:focus { + color: #808080; +} +.note-editor .text-warning { + color: #c09853; +} +.note-editor a.text-warning:hover, +.note-editor a.text-warning:focus { + color: #a47e3c; +} +.note-editor .text-error { + color: #b94a48; +} +.note-editor a.text-error:hover, +.note-editor a.text-error:focus { + color: #953b39; +} +.note-editor .text-info { + color: #3a87ad; +} +.note-editor a.text-info:hover, +.note-editor a.text-info:focus { + color: #2d6987; +} +.note-editor .text-success { + color: #468847; +} +.note-editor a.text-success:hover, +.note-editor a.text-success:focus { + color: #356635; +} +.note-editor .text-left { + text-align: left; +} +.note-editor .text-right { + text-align: right; +} +.note-editor .text-center { + text-align: center; +} +.note-editor h1, +.note-editor h2, +.note-editor h3, +.note-editor h4, +.note-editor h5, +.note-editor h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} +.note-editor h1 small, +.note-editor h2 small, +.note-editor h3 small, +.note-editor h4 small, +.note-editor h5 small, +.note-editor h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} +.note-editor h1, +.note-editor h2, +.note-editor h3 { + line-height: 40px; +} +.note-editor h1 { + font-size: 38.5px; +} +.note-editor h2 { + font-size: 31.5px; +} +.note-editor h3 { + font-size: 24.5px; +} +.note-editor h4 { + font-size: 17.5px; +} +.note-editor h5 { + font-size: 14px; +} +.note-editor h6 { + font-size: 11.9px; +} +.note-editor h1 small { + font-size: 24.5px; +} +.note-editor h2 small { + font-size: 17.5px; +} +.note-editor h3 small { + font-size: 14px; +} +.note-editor h4 small { + font-size: 14px; +} +.note-editor .page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} +.note-editor ul, +.note-editor ol { + padding: 0; + margin: 0 0 10px 25px; +} +.note-editor ul ul, +.note-editor ul ol, +.note-editor ol ol, +.note-editor ol ul { + margin-bottom: 0; +} +.note-editor li { + line-height: 20px; +} +.note-editor ul.unstyled, +.note-editor ol.unstyled { + margin-left: 0; + list-style: none; +} +.note-editor ul.inline, +.note-editor ol.inline { + margin-left: 0; + list-style: none; +} +.note-editor ul.inline > li, +.note-editor ol.inline > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding-left: 5px; + padding-right: 5px; +} +.note-editor dl { + margin-bottom: 20px; +} +.note-editor dt, +.note-editor dd { + line-height: 20px; +} +.note-editor dt { + font-weight: bold; +} +.note-editor dd { + margin-left: 10px; +} +.note-editor .dl-horizontal { + *zoom: 1; +} +.note-editor .dl-horizontal:before, +.note-editor .dl-horizontal:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .dl-horizontal:after { + clear: both; +} +.note-editor .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.note-editor .dl-horizontal dd { + margin-left: 180px; +} +.note-editor hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +.note-editor abbr[title], +.note-editor abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +.note-editor abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +.note-editor blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +.note-editor blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +.note-editor blockquote small { + display: block; + line-height: 20px; + color: #999999; +} +.note-editor blockquote small:before { + content: '\2014 \00A0'; +} +.note-editor blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +.note-editor blockquote.pull-right p, +.note-editor blockquote.pull-right small { + text-align: right; +} +.note-editor blockquote.pull-right small:before { + content: ''; +} +.note-editor blockquote.pull-right small:after { + content: '\00A0 \2014'; +} +.note-editor q:before, +.note-editor q:after, +.note-editor blockquote:before, +.note-editor blockquote:after { + content: ""; +} +.note-editor address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} +.note-editor code, +.note-editor pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.note-editor code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + white-space: nowrap; +} +.note-editor pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor pre.prettyprint { + margin-bottom: 20px; +} +.note-editor pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.note-editor .pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.note-editor form { + margin: 0 0 20px; +} +.note-editor fieldset { + padding: 0; + margin: 0; + border: 0; +} +.note-editor legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +.note-editor legend small { + font-size: 15px; + color: #999999; +} +.note-editor label, +.note-editor input, +.note-editor button, +.note-editor select, +.note-editor textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} +.note-editor input, +.note-editor button, +.note-editor select, +.note-editor textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.note-editor label { + display: block; + margin-bottom: 5px; +} +.note-editor select, +.note-editor textarea, +.note-editor input[type="text"], +.note-editor input[type="password"], +.note-editor input[type="datetime"], +.note-editor input[type="datetime-local"], +.note-editor input[type="date"], +.note-editor input[type="month"], +.note-editor input[type="time"], +.note-editor input[type="week"], +.note-editor input[type="number"], +.note-editor input[type="email"], +.note-editor input[type="url"], +.note-editor input[type="search"], +.note-editor input[type="tel"], +.note-editor input[type="color"], +.note-editor .uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + vertical-align: middle; +} +.note-editor input, +.note-editor textarea, +.note-editor .uneditable-input { + width: 206px; +} +.note-editor textarea { + height: auto; +} +.note-editor textarea, +.note-editor input[type="text"], +.note-editor input[type="password"], +.note-editor input[type="datetime"], +.note-editor input[type="datetime-local"], +.note-editor input[type="date"], +.note-editor input[type="month"], +.note-editor input[type="time"], +.note-editor input[type="week"], +.note-editor input[type="number"], +.note-editor input[type="email"], +.note-editor input[type="url"], +.note-editor input[type="search"], +.note-editor input[type="tel"], +.note-editor input[type="color"], +.note-editor .uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; +} +.note-editor textarea:focus, +.note-editor input[type="text"]:focus, +.note-editor input[type="password"]:focus, +.note-editor input[type="datetime"]:focus, +.note-editor input[type="datetime-local"]:focus, +.note-editor input[type="date"]:focus, +.note-editor input[type="month"]:focus, +.note-editor input[type="time"]:focus, +.note-editor input[type="week"]:focus, +.note-editor input[type="number"]:focus, +.note-editor input[type="email"]:focus, +.note-editor input[type="url"]:focus, +.note-editor input[type="search"]:focus, +.note-editor input[type="tel"]:focus, +.note-editor input[type="color"]:focus, +.note-editor .uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); +} +.note-editor input[type="radio"], +.note-editor input[type="checkbox"] { + margin: 4px 0 0; + *margin-top: 0; + /* IE7 */ + + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +.note-editor input[type="file"], +.note-editor input[type="image"], +.note-editor input[type="submit"], +.note-editor input[type="reset"], +.note-editor input[type="button"], +.note-editor input[type="radio"], +.note-editor input[type="checkbox"] { + width: auto; +} +.note-editor select, +.note-editor input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} +.note-editor select { + width: 220px; + border: 1px solid #cccccc; + background-color: #ffffff; +} +.note-editor select[multiple], +.note-editor select[size] { + height: auto; +} +.note-editor select:focus, +.note-editor input[type="file"]:focus, +.note-editor input[type="radio"]:focus, +.note-editor input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor .uneditable-input, +.note-editor .uneditable-textarea { + color: #999999; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +.note-editor .uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.note-editor .uneditable-textarea { + width: auto; + height: auto; +} +.note-editor input:-moz-placeholder, +.note-editor textarea:-moz-placeholder { + color: #999999; +} +.note-editor input:-ms-input-placeholder, +.note-editor textarea:-ms-input-placeholder { + color: #999999; +} +.note-editor input::-webkit-input-placeholder, +.note-editor textarea::-webkit-input-placeholder { + color: #999999; +} +.note-editor .radio, +.note-editor .checkbox { + min-height: 20px; + padding-left: 20px; +} +.note-editor .radio input[type="radio"], +.note-editor .checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.note-editor .controls > .radio:first-child, +.note-editor .controls > .checkbox:first-child { + padding-top: 5px; +} +.note-editor .radio.inline, +.note-editor .checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.note-editor .radio.inline + .radio.inline, +.note-editor .checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.note-editor .input-mini { + width: 60px; +} +.note-editor .input-small { + width: 90px; +} +.note-editor .input-medium { + width: 150px; +} +.note-editor .input-large { + width: 210px; +} +.note-editor .input-xlarge { + width: 270px; +} +.note-editor .input-xxlarge { + width: 530px; +} +.note-editor input[class*="span"], +.note-editor select[class*="span"], +.note-editor textarea[class*="span"], +.note-editor .uneditable-input[class*="span"], +.note-editor .row-fluid input[class*="span"], +.note-editor .row-fluid select[class*="span"], +.note-editor .row-fluid textarea[class*="span"], +.note-editor .row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} +.note-editor .input-append input[class*="span"], +.note-editor .input-append .uneditable-input[class*="span"], +.note-editor .input-prepend input[class*="span"], +.note-editor .input-prepend .uneditable-input[class*="span"], +.note-editor .row-fluid input[class*="span"], +.note-editor .row-fluid select[class*="span"], +.note-editor .row-fluid textarea[class*="span"], +.note-editor .row-fluid .uneditable-input[class*="span"], +.note-editor .row-fluid .input-prepend [class*="span"], +.note-editor .row-fluid .input-append [class*="span"] { + display: inline-block; +} +.note-editor input, +.note-editor textarea, +.note-editor .uneditable-input { + margin-left: 0; +} +.note-editor .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} +.note-editor input.span12, +.note-editor textarea.span12, +.note-editor .uneditable-input.span12 { + width: 926px; +} +.note-editor input.span11, +.note-editor textarea.span11, +.note-editor .uneditable-input.span11 { + width: 846px; +} +.note-editor input.span10, +.note-editor textarea.span10, +.note-editor .uneditable-input.span10 { + width: 766px; +} +.note-editor input.span9, +.note-editor textarea.span9, +.note-editor .uneditable-input.span9 { + width: 686px; +} +.note-editor input.span8, +.note-editor textarea.span8, +.note-editor .uneditable-input.span8 { + width: 606px; +} +.note-editor input.span7, +.note-editor textarea.span7, +.note-editor .uneditable-input.span7 { + width: 526px; +} +.note-editor input.span6, +.note-editor textarea.span6, +.note-editor .uneditable-input.span6 { + width: 446px; +} +.note-editor input.span5, +.note-editor textarea.span5, +.note-editor .uneditable-input.span5 { + width: 366px; +} +.note-editor input.span4, +.note-editor textarea.span4, +.note-editor .uneditable-input.span4 { + width: 286px; +} +.note-editor input.span3, +.note-editor textarea.span3, +.note-editor .uneditable-input.span3 { + width: 206px; +} +.note-editor input.span2, +.note-editor textarea.span2, +.note-editor .uneditable-input.span2 { + width: 126px; +} +.note-editor input.span1, +.note-editor textarea.span1, +.note-editor .uneditable-input.span1 { + width: 46px; +} +.note-editor .controls-row { + *zoom: 1; +} +.note-editor .controls-row:before, +.note-editor .controls-row:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .controls-row:after { + clear: both; +} +.note-editor .controls-row [class*="span"], +.note-editor .row-fluid .controls-row [class*="span"] { + float: left; +} +.note-editor .controls-row .checkbox[class*="span"], +.note-editor .controls-row .radio[class*="span"] { + padding-top: 5px; +} +.note-editor input[disabled], +.note-editor select[disabled], +.note-editor textarea[disabled], +.note-editor input[readonly], +.note-editor select[readonly], +.note-editor textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} +.note-editor input[type="radio"][disabled], +.note-editor input[type="checkbox"][disabled], +.note-editor input[type="radio"][readonly], +.note-editor input[type="checkbox"][readonly] { + background-color: transparent; +} +.note-editor .control-group.warning .control-label, +.note-editor .control-group.warning .help-block, +.note-editor .control-group.warning .help-inline { + color: #c09853; +} +.note-editor .control-group.warning .checkbox, +.note-editor .control-group.warning .radio, +.note-editor .control-group.warning input, +.note-editor .control-group.warning select, +.note-editor .control-group.warning textarea { + color: #c09853; +} +.note-editor .control-group.warning input, +.note-editor .control-group.warning select, +.note-editor .control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .control-group.warning input:focus, +.note-editor .control-group.warning select:focus, +.note-editor .control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} +.note-editor .control-group.warning .input-prepend .add-on, +.note-editor .control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.note-editor .control-group.error .control-label, +.note-editor .control-group.error .help-block, +.note-editor .control-group.error .help-inline { + color: #b94a48; +} +.note-editor .control-group.error .checkbox, +.note-editor .control-group.error .radio, +.note-editor .control-group.error input, +.note-editor .control-group.error select, +.note-editor .control-group.error textarea { + color: #b94a48; +} +.note-editor .control-group.error input, +.note-editor .control-group.error select, +.note-editor .control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .control-group.error input:focus, +.note-editor .control-group.error select:focus, +.note-editor .control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} +.note-editor .control-group.error .input-prepend .add-on, +.note-editor .control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.note-editor .control-group.success .control-label, +.note-editor .control-group.success .help-block, +.note-editor .control-group.success .help-inline { + color: #468847; +} +.note-editor .control-group.success .checkbox, +.note-editor .control-group.success .radio, +.note-editor .control-group.success input, +.note-editor .control-group.success select, +.note-editor .control-group.success textarea { + color: #468847; +} +.note-editor .control-group.success input, +.note-editor .control-group.success select, +.note-editor .control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .control-group.success input:focus, +.note-editor .control-group.success select:focus, +.note-editor .control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} +.note-editor .control-group.success .input-prepend .add-on, +.note-editor .control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +.note-editor .control-group.info .control-label, +.note-editor .control-group.info .help-block, +.note-editor .control-group.info .help-inline { + color: #3a87ad; +} +.note-editor .control-group.info .checkbox, +.note-editor .control-group.info .radio, +.note-editor .control-group.info input, +.note-editor .control-group.info select, +.note-editor .control-group.info textarea { + color: #3a87ad; +} +.note-editor .control-group.info input, +.note-editor .control-group.info select, +.note-editor .control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .control-group.info input:focus, +.note-editor .control-group.info select:focus, +.note-editor .control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} +.note-editor .control-group.info .input-prepend .add-on, +.note-editor .control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} +.note-editor input:focus:invalid, +.note-editor textarea:focus:invalid, +.note-editor select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +.note-editor input:focus:invalid:focus, +.note-editor textarea:focus:invalid:focus, +.note-editor select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.note-editor .form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.note-editor .form-actions:before, +.note-editor .form-actions:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .form-actions:after { + clear: both; +} +.note-editor .help-block, +.note-editor .help-inline { + color: #595959; +} +.note-editor .help-block { + display: block; + margin-bottom: 10px; +} +.note-editor .help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; + padding-left: 5px; +} +.note-editor .input-append, +.note-editor .input-prepend { + display: inline-block; + margin-bottom: 10px; + vertical-align: middle; + font-size: 0; + white-space: nowrap; +} +.note-editor .input-append input, +.note-editor .input-prepend input, +.note-editor .input-append select, +.note-editor .input-prepend select, +.note-editor .input-append .uneditable-input, +.note-editor .input-prepend .uneditable-input, +.note-editor .input-append .dropdown-menu, +.note-editor .input-prepend .dropdown-menu, +.note-editor .input-append .popover, +.note-editor .input-prepend .popover { + font-size: 14px; +} +.note-editor .input-append input, +.note-editor .input-prepend input, +.note-editor .input-append select, +.note-editor .input-prepend select, +.note-editor .input-append .uneditable-input, +.note-editor .input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .input-append input:focus, +.note-editor .input-prepend input:focus, +.note-editor .input-append select:focus, +.note-editor .input-prepend select:focus, +.note-editor .input-append .uneditable-input:focus, +.note-editor .input-prepend .uneditable-input:focus { + z-index: 2; +} +.note-editor .input-append .add-on, +.note-editor .input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.note-editor .input-append .add-on, +.note-editor .input-prepend .add-on, +.note-editor .input-append .btn, +.note-editor .input-prepend .btn, +.note-editor .input-append .btn-group > .dropdown-toggle, +.note-editor .input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .input-append .active, +.note-editor .input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} +.note-editor .input-prepend .add-on, +.note-editor .input-prepend .btn { + margin-right: -1px; +} +.note-editor .input-prepend .add-on:first-child, +.note-editor .input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.note-editor .input-append input, +.note-editor .input-append select, +.note-editor .input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.note-editor .input-append input + .btn-group .btn:last-child, +.note-editor .input-append select + .btn-group .btn:last-child, +.note-editor .input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .input-append .add-on, +.note-editor .input-append .btn, +.note-editor .input-append .btn-group { + margin-left: -1px; +} +.note-editor .input-append .add-on:last-child, +.note-editor .input-append .btn:last-child, +.note-editor .input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .input-prepend.input-append input, +.note-editor .input-prepend.input-append select, +.note-editor .input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .input-prepend.input-append input + .btn-group .btn, +.note-editor .input-prepend.input-append select + .btn-group .btn, +.note-editor .input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .input-prepend.input-append .add-on:first-child, +.note-editor .input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.note-editor .input-prepend.input-append .add-on:last-child, +.note-editor .input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +.note-editor input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.note-editor .form-search .input-append .search-query, +.note-editor .form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} +.note-editor .form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.note-editor .form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.note-editor .form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} +.note-editor .form-search input, +.note-editor .form-inline input, +.note-editor .form-horizontal input, +.note-editor .form-search textarea, +.note-editor .form-inline textarea, +.note-editor .form-horizontal textarea, +.note-editor .form-search select, +.note-editor .form-inline select, +.note-editor .form-horizontal select, +.note-editor .form-search .help-inline, +.note-editor .form-inline .help-inline, +.note-editor .form-horizontal .help-inline, +.note-editor .form-search .uneditable-input, +.note-editor .form-inline .uneditable-input, +.note-editor .form-horizontal .uneditable-input, +.note-editor .form-search .input-prepend, +.note-editor .form-inline .input-prepend, +.note-editor .form-horizontal .input-prepend, +.note-editor .form-search .input-append, +.note-editor .form-inline .input-append, +.note-editor .form-horizontal .input-append { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 0; + vertical-align: middle; +} +.note-editor .form-search .hide, +.note-editor .form-inline .hide, +.note-editor .form-horizontal .hide { + display: none; +} +.note-editor .form-search label, +.note-editor .form-inline label, +.note-editor .form-search .btn-group, +.note-editor .form-inline .btn-group { + display: inline-block; +} +.note-editor .form-search .input-append, +.note-editor .form-inline .input-append, +.note-editor .form-search .input-prepend, +.note-editor .form-inline .input-prepend { + margin-bottom: 0; +} +.note-editor .form-search .radio, +.note-editor .form-search .checkbox, +.note-editor .form-inline .radio, +.note-editor .form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.note-editor .form-search .radio input[type="radio"], +.note-editor .form-search .checkbox input[type="checkbox"], +.note-editor .form-inline .radio input[type="radio"], +.note-editor .form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} +.note-editor .control-group { + margin-bottom: 10px; +} +.note-editor legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} +.note-editor .form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} +.note-editor .form-horizontal .control-group:before, +.note-editor .form-horizontal .control-group:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .form-horizontal .control-group:after { + clear: both; +} +.note-editor .form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} +.note-editor .form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} +.note-editor .form-horizontal .controls:first-child { + *padding-left: 180px; +} +.note-editor .form-horizontal .help-block { + margin-bottom: 0; +} +.note-editor .form-horizontal input + .help-block, +.note-editor .form-horizontal select + .help-block, +.note-editor .form-horizontal textarea + .help-block, +.note-editor .form-horizontal .uneditable-input + .help-block, +.note-editor .form-horizontal .input-prepend + .help-block, +.note-editor .form-horizontal .input-append + .help-block { + margin-top: 10px; +} +.note-editor .form-horizontal .form-actions { + padding-left: 180px; +} +.note-editor table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} +.note-editor .table { + width: 100%; + margin-bottom: 20px; +} +.note-editor .table th, +.note-editor .table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.note-editor .table th { + font-weight: bold; +} +.note-editor .table thead th { + vertical-align: bottom; +} +.note-editor .table caption + thead tr:first-child th, +.note-editor .table caption + thead tr:first-child td, +.note-editor .table colgroup + thead tr:first-child th, +.note-editor .table colgroup + thead tr:first-child td, +.note-editor .table thead:first-child tr:first-child th, +.note-editor .table thead:first-child tr:first-child td { + border-top: 0; +} +.note-editor .table tbody + tbody { + border-top: 2px solid #dddddd; +} +.note-editor .table .table { + background-color: #ffffff; +} +.note-editor .table-condensed th, +.note-editor .table-condensed td { + padding: 4px 5px; +} +.note-editor .table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .table-bordered th, +.note-editor .table-bordered td { + border-left: 1px solid #dddddd; +} +.note-editor .table-bordered caption + thead tr:first-child th, +.note-editor .table-bordered caption + tbody tr:first-child th, +.note-editor .table-bordered caption + tbody tr:first-child td, +.note-editor .table-bordered colgroup + thead tr:first-child th, +.note-editor .table-bordered colgroup + tbody tr:first-child th, +.note-editor .table-bordered colgroup + tbody tr:first-child td, +.note-editor .table-bordered thead:first-child tr:first-child th, +.note-editor .table-bordered tbody:first-child tr:first-child th, +.note-editor .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.note-editor .table-bordered thead:first-child tr:first-child > th:first-child, +.note-editor .table-bordered tbody:first-child tr:first-child > td:first-child, +.note-editor .table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.note-editor .table-bordered thead:first-child tr:first-child > th:last-child, +.note-editor .table-bordered tbody:first-child tr:first-child > td:last-child, +.note-editor .table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; +} +.note-editor .table-bordered thead:last-child tr:last-child > th:first-child, +.note-editor .table-bordered tbody:last-child tr:last-child > td:first-child, +.note-editor .table-bordered tbody:last-child tr:last-child > th:first-child, +.note-editor .table-bordered tfoot:last-child tr:last-child > td:first-child, +.note-editor .table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .table-bordered thead:last-child tr:last-child > th:last-child, +.note-editor .table-bordered tbody:last-child tr:last-child > td:last-child, +.note-editor .table-bordered tbody:last-child tr:last-child > th:last-child, +.note-editor .table-bordered tfoot:last-child tr:last-child > td:last-child, +.note-editor .table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.note-editor .table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; + border-bottom-left-radius: 0; +} +.note-editor .table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; + border-bottom-right-radius: 0; +} +.note-editor .table-bordered caption + thead tr:first-child th:first-child, +.note-editor .table-bordered caption + tbody tr:first-child td:first-child, +.note-editor .table-bordered colgroup + thead tr:first-child th:first-child, +.note-editor .table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.note-editor .table-bordered caption + thead tr:first-child th:last-child, +.note-editor .table-bordered caption + tbody tr:first-child td:last-child, +.note-editor .table-bordered colgroup + thead tr:first-child th:last-child, +.note-editor .table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; +} +.note-editor .table-striped tbody > tr:nth-child(odd) > td, +.note-editor .table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.note-editor .table-hover tbody tr:hover > td, +.note-editor .table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} +.note-editor table td[class*="span"], +.note-editor table th[class*="span"], +.note-editor .row-fluid table td[class*="span"], +.note-editor .row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.note-editor .table td.span1, +.note-editor .table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} +.note-editor .table td.span2, +.note-editor .table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} +.note-editor .table td.span3, +.note-editor .table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} +.note-editor .table td.span4, +.note-editor .table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} +.note-editor .table td.span5, +.note-editor .table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} +.note-editor .table td.span6, +.note-editor .table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} +.note-editor .table td.span7, +.note-editor .table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} +.note-editor .table td.span8, +.note-editor .table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} +.note-editor .table td.span9, +.note-editor .table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} +.note-editor .table td.span10, +.note-editor .table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} +.note-editor .table td.span11, +.note-editor .table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} +.note-editor .table td.span12, +.note-editor .table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} +.note-editor .table tbody tr.success > td { + background-color: #dff0d8; +} +.note-editor .table tbody tr.error > td { + background-color: #f2dede; +} +.note-editor .table tbody tr.warning > td { + background-color: #fcf8e3; +} +.note-editor .table tbody tr.info > td { + background-color: #d9edf7; +} +.note-editor .table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} +.note-editor .table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} +.note-editor .table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} +.note-editor .table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} +.note-editor [class^="icon-"], +.note-editor [class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; + margin-top: 1px; +} +.note-editor .icon-white, +.note-editor .nav-pills > .active > a > [class^="icon-"], +.note-editor .nav-pills > .active > a > [class*=" icon-"], +.note-editor .nav-list > .active > a > [class^="icon-"], +.note-editor .nav-list > .active > a > [class*=" icon-"], +.note-editor .navbar-inverse .nav > .active > a > [class^="icon-"], +.note-editor .navbar-inverse .nav > .active > a > [class*=" icon-"], +.note-editor .dropdown-menu > li > a:hover > [class^="icon-"], +.note-editor .dropdown-menu > li > a:focus > [class^="icon-"], +.note-editor .dropdown-menu > li > a:hover > [class*=" icon-"], +.note-editor .dropdown-menu > li > a:focus > [class*=" icon-"], +.note-editor .dropdown-menu > .active > a > [class^="icon-"], +.note-editor .dropdown-menu > .active > a > [class*=" icon-"], +.note-editor .dropdown-submenu:hover > a > [class^="icon-"], +.note-editor .dropdown-submenu:focus > a > [class^="icon-"], +.note-editor .dropdown-submenu:hover > a > [class*=" icon-"], +.note-editor .dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} +.note-editor .icon-glass { + background-position: 0 0; +} +.note-editor .icon-music { + background-position: -24px 0; +} +.note-editor .icon-search { + background-position: -48px 0; +} +.note-editor .icon-envelope { + background-position: -72px 0; +} +.note-editor .icon-heart { + background-position: -96px 0; +} +.note-editor .icon-star { + background-position: -120px 0; +} +.note-editor .icon-star-empty { + background-position: -144px 0; +} +.note-editor .icon-user { + background-position: -168px 0; +} +.note-editor .icon-film { + background-position: -192px 0; +} +.note-editor .icon-th-large { + background-position: -216px 0; +} +.note-editor .icon-th { + background-position: -240px 0; +} +.note-editor .icon-th-list { + background-position: -264px 0; +} +.note-editor .icon-ok { + background-position: -288px 0; +} +.note-editor .icon-remove { + background-position: -312px 0; +} +.note-editor .icon-zoom-in { + background-position: -336px 0; +} +.note-editor .icon-zoom-out { + background-position: -360px 0; +} +.note-editor .icon-off { + background-position: -384px 0; +} +.note-editor .icon-signal { + background-position: -408px 0; +} +.note-editor .icon-cog { + background-position: -432px 0; +} +.note-editor .icon-trash { + background-position: -456px 0; +} +.note-editor .icon-home { + background-position: 0 -24px; +} +.note-editor .icon-file { + background-position: -24px -24px; +} +.note-editor .icon-time { + background-position: -48px -24px; +} +.note-editor .icon-road { + background-position: -72px -24px; +} +.note-editor .icon-download-alt { + background-position: -96px -24px; +} +.note-editor .icon-download { + background-position: -120px -24px; +} +.note-editor .icon-upload { + background-position: -144px -24px; +} +.note-editor .icon-inbox { + background-position: -168px -24px; +} +.note-editor .icon-play-circle { + background-position: -192px -24px; +} +.note-editor .icon-repeat { + background-position: -216px -24px; +} +.note-editor .icon-refresh { + background-position: -240px -24px; +} +.note-editor .icon-list-alt { + background-position: -264px -24px; +} +.note-editor .icon-lock { + background-position: -287px -24px; +} +.note-editor .icon-flag { + background-position: -312px -24px; +} +.note-editor .icon-headphones { + background-position: -336px -24px; +} +.note-editor .icon-volume-off { + background-position: -360px -24px; +} +.note-editor .icon-volume-down { + background-position: -384px -24px; +} +.note-editor .icon-volume-up { + background-position: -408px -24px; +} +.note-editor .icon-qrcode { + background-position: -432px -24px; +} +.note-editor .icon-barcode { + background-position: -456px -24px; +} +.note-editor .icon-tag { + background-position: 0 -48px; +} +.note-editor .icon-tags { + background-position: -25px -48px; +} +.note-editor .icon-book { + background-position: -48px -48px; +} +.note-editor .icon-bookmark { + background-position: -72px -48px; +} +.note-editor .icon-print { + background-position: -96px -48px; +} +.note-editor .icon-camera { + background-position: -120px -48px; +} +.note-editor .icon-font { + background-position: -144px -48px; +} +.note-editor .icon-bold { + background-position: -167px -48px; +} +.note-editor .icon-italic { + background-position: -192px -48px; +} +.note-editor .icon-text-height { + background-position: -216px -48px; +} +.note-editor .icon-text-width { + background-position: -240px -48px; +} +.note-editor .icon-align-left { + background-position: -264px -48px; +} +.note-editor .icon-align-center { + background-position: -288px -48px; +} +.note-editor .icon-align-right { + background-position: -312px -48px; +} +.note-editor .icon-align-justify { + background-position: -336px -48px; +} +.note-editor .icon-list { + background-position: -360px -48px; +} +.note-editor .icon-indent-left { + background-position: -384px -48px; +} +.note-editor .icon-indent-right { + background-position: -408px -48px; +} +.note-editor .icon-facetime-video { + background-position: -432px -48px; +} +.note-editor .icon-picture { + background-position: -456px -48px; +} +.note-editor .icon-pencil { + background-position: 0 -72px; +} +.note-editor .icon-map-marker { + background-position: -24px -72px; +} +.note-editor .icon-adjust { + background-position: -48px -72px; +} +.note-editor .icon-tint { + background-position: -72px -72px; +} +.note-editor .icon-edit { + background-position: -96px -72px; +} +.note-editor .icon-share { + background-position: -120px -72px; +} +.note-editor .icon-check { + background-position: -144px -72px; +} +.note-editor .icon-move { + background-position: -168px -72px; +} +.note-editor .icon-step-backward { + background-position: -192px -72px; +} +.note-editor .icon-fast-backward { + background-position: -216px -72px; +} +.note-editor .icon-backward { + background-position: -240px -72px; +} +.note-editor .icon-play { + background-position: -264px -72px; +} +.note-editor .icon-pause { + background-position: -288px -72px; +} +.note-editor .icon-stop { + background-position: -312px -72px; +} +.note-editor .icon-forward { + background-position: -336px -72px; +} +.note-editor .icon-fast-forward { + background-position: -360px -72px; +} +.note-editor .icon-step-forward { + background-position: -384px -72px; +} +.note-editor .icon-eject { + background-position: -408px -72px; +} +.note-editor .icon-chevron-left { + background-position: -432px -72px; +} +.note-editor .icon-chevron-right { + background-position: -456px -72px; +} +.note-editor .icon-plus-sign { + background-position: 0 -96px; +} +.note-editor .icon-minus-sign { + background-position: -24px -96px; +} +.note-editor .icon-remove-sign { + background-position: -48px -96px; +} +.note-editor .icon-ok-sign { + background-position: -72px -96px; +} +.note-editor .icon-question-sign { + background-position: -96px -96px; +} +.note-editor .icon-info-sign { + background-position: -120px -96px; +} +.note-editor .icon-screenshot { + background-position: -144px -96px; +} +.note-editor .icon-remove-circle { + background-position: -168px -96px; +} +.note-editor .icon-ok-circle { + background-position: -192px -96px; +} +.note-editor .icon-ban-circle { + background-position: -216px -96px; +} +.note-editor .icon-arrow-left { + background-position: -240px -96px; +} +.note-editor .icon-arrow-right { + background-position: -264px -96px; +} +.note-editor .icon-arrow-up { + background-position: -289px -96px; +} +.note-editor .icon-arrow-down { + background-position: -312px -96px; +} +.note-editor .icon-share-alt { + background-position: -336px -96px; +} +.note-editor .icon-resize-full { + background-position: -360px -96px; +} +.note-editor .icon-resize-small { + background-position: -384px -96px; +} +.note-editor .icon-plus { + background-position: -408px -96px; +} +.note-editor .icon-minus { + background-position: -433px -96px; +} +.note-editor .icon-asterisk { + background-position: -456px -96px; +} +.note-editor .icon-exclamation-sign { + background-position: 0 -120px; +} +.note-editor .icon-gift { + background-position: -24px -120px; +} +.note-editor .icon-leaf { + background-position: -48px -120px; +} +.note-editor .icon-fire { + background-position: -72px -120px; +} +.note-editor .icon-eye-open { + background-position: -96px -120px; +} +.note-editor .icon-eye-close { + background-position: -120px -120px; +} +.note-editor .icon-warning-sign { + background-position: -144px -120px; +} +.note-editor .icon-plane { + background-position: -168px -120px; +} +.note-editor .icon-calendar { + background-position: -192px -120px; +} +.note-editor .icon-random { + background-position: -216px -120px; + width: 16px; +} +.note-editor .icon-comment { + background-position: -240px -120px; +} +.note-editor .icon-magnet { + background-position: -264px -120px; +} +.note-editor .icon-chevron-up { + background-position: -288px -120px; +} +.note-editor .icon-chevron-down { + background-position: -313px -119px; +} +.note-editor .icon-retweet { + background-position: -336px -120px; +} +.note-editor .icon-shopping-cart { + background-position: -360px -120px; +} +.note-editor .icon-folder-close { + background-position: -384px -120px; + width: 16px; +} +.note-editor .icon-folder-open { + background-position: -408px -120px; + width: 16px; +} +.note-editor .icon-resize-vertical { + background-position: -432px -119px; +} +.note-editor .icon-resize-horizontal { + background-position: -456px -118px; +} +.note-editor .icon-hdd { + background-position: 0 -144px; +} +.note-editor .icon-bullhorn { + background-position: -24px -144px; +} +.note-editor .icon-bell { + background-position: -48px -144px; +} +.note-editor .icon-certificate { + background-position: -72px -144px; +} +.note-editor .icon-thumbs-up { + background-position: -96px -144px; +} +.note-editor .icon-thumbs-down { + background-position: -120px -144px; +} +.note-editor .icon-hand-right { + background-position: -144px -144px; +} +.note-editor .icon-hand-left { + background-position: -168px -144px; +} +.note-editor .icon-hand-up { + background-position: -192px -144px; +} +.note-editor .icon-hand-down { + background-position: -216px -144px; +} +.note-editor .icon-circle-arrow-right { + background-position: -240px -144px; +} +.note-editor .icon-circle-arrow-left { + background-position: -264px -144px; +} +.note-editor .icon-circle-arrow-up { + background-position: -288px -144px; +} +.note-editor .icon-circle-arrow-down { + background-position: -312px -144px; +} +.note-editor .icon-globe { + background-position: -336px -144px; +} +.note-editor .icon-wrench { + background-position: -360px -144px; +} +.note-editor .icon-tasks { + background-position: -384px -144px; +} +.note-editor .icon-filter { + background-position: -408px -144px; +} +.note-editor .icon-briefcase { + background-position: -432px -144px; +} +.note-editor .icon-fullscreen { + background-position: -456px -144px; +} +.note-editor .dropup, +.note-editor .dropdown { + position: relative; +} +.note-editor .dropdown-toggle { + *margin-bottom: -3px; +} +.note-editor .dropdown-toggle:active, +.note-editor .open .dropdown-toggle { + outline: 0; +} +.note-editor .caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} +.note-editor .dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.note-editor .dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.note-editor .dropdown-menu.pull-right { + right: 0; + left: auto; +} +.note-editor .dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.note-editor .dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} +.note-editor .dropdown-menu > li > a:hover, +.note-editor .dropdown-menu > li > a:focus, +.note-editor .dropdown-submenu:hover > a, +.note-editor .dropdown-submenu:focus > a { + text-decoration: none; + color: #ffffff; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} +.note-editor .dropdown-menu > .active > a, +.note-editor .dropdown-menu > .active > a:hover, +.note-editor .dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} +.note-editor .dropdown-menu > .disabled > a, +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + color: #999999; +} +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: default; +} +.note-editor .open { + *z-index: 1000; +} +.note-editor .open > .dropdown-menu { + display: block; +} +.note-editor .dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.note-editor .pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.note-editor .dropup .caret, +.note-editor .navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} +.note-editor .dropup .dropdown-menu, +.note-editor .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.note-editor .dropdown-submenu { + position: relative; +} +.note-editor .dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} +.note-editor .dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.note-editor .dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} +.note-editor .dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} +.note-editor .dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} +.note-editor .dropdown-submenu.pull-left { + float: none; +} +.note-editor .dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.note-editor .dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} +.note-editor .typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.note-editor .well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.note-editor .well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.note-editor .well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.note-editor .fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.note-editor .fade.in { + opacity: 1; +} +.note-editor .collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.note-editor .collapse.in { + height: auto; +} +.note-editor .close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.note-editor .close:hover, +.note-editor .close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} +.note-editor button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.note-editor .btn { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding: 4px 12px; + margin-bottom: 0; + font-size: 14px; + line-height: 20px; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e6e6e6; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #cccccc; + *border: 0; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *margin-left: .3em; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); +} +.note-editor .btn:hover, +.note-editor .btn:focus, +.note-editor .btn:active, +.note-editor .btn.active, +.note-editor .btn.disabled, +.note-editor .btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} +.note-editor .btn:active, +.note-editor .btn.active { + background-color: #cccccc \9; +} +.note-editor .btn:first-child { + *margin-left: 0; +} +.note-editor .btn:hover, +.note-editor .btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.note-editor .btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor .btn.active, +.note-editor .btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); +} +.note-editor .btn.disabled, +.note-editor .btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.note-editor .btn-large [class^="icon-"], +.note-editor .btn-large [class*=" icon-"] { + margin-top: 4px; +} +.note-editor .btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.note-editor .btn-small [class^="icon-"], +.note-editor .btn-small [class*=" icon-"] { + margin-top: 0; +} +.note-editor .btn-mini [class^="icon-"], +.note-editor .btn-mini [class*=" icon-"] { + margin-top: -1px; +} +.note-editor .btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.note-editor .btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor .btn-block + .btn-block { + margin-top: 5px; +} +.note-editor input[type="submit"].btn-block, +.note-editor input[type="reset"].btn-block, +.note-editor input[type="button"].btn-block { + width: 100%; +} +.note-editor .btn-primary.active, +.note-editor .btn-warning.active, +.note-editor .btn-danger.active, +.note-editor .btn-success.active, +.note-editor .btn-info.active, +.note-editor .btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.note-editor .btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-primary:hover, +.note-editor .btn-primary:focus, +.note-editor .btn-primary:active, +.note-editor .btn-primary.active, +.note-editor .btn-primary.disabled, +.note-editor .btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.note-editor .btn-primary:active, +.note-editor .btn-primary.active { + background-color: #003399 \9; +} +.note-editor .btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #f89406; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-warning:hover, +.note-editor .btn-warning:focus, +.note-editor .btn-warning:active, +.note-editor .btn-warning.active, +.note-editor .btn-warning.disabled, +.note-editor .btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} +.note-editor .btn-warning:active, +.note-editor .btn-warning.active { + background-color: #c67605 \9; +} +.note-editor .btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #bd362f; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-danger:hover, +.note-editor .btn-danger:focus, +.note-editor .btn-danger:active, +.note-editor .btn-danger.active, +.note-editor .btn-danger.disabled, +.note-editor .btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} +.note-editor .btn-danger:active, +.note-editor .btn-danger.active { + background-color: #942a25 \9; +} +.note-editor .btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-success:hover, +.note-editor .btn-success:focus, +.note-editor .btn-success:active, +.note-editor .btn-success.active, +.note-editor .btn-success.disabled, +.note-editor .btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.note-editor .btn-success:active, +.note-editor .btn-success.active { + background-color: #408140 \9; +} +.note-editor .btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #2f96b4; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-info:hover, +.note-editor .btn-info:focus, +.note-editor .btn-info:active, +.note-editor .btn-info.active, +.note-editor .btn-info.disabled, +.note-editor .btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} +.note-editor .btn-info:active, +.note-editor .btn-info.active { + background-color: #24748c \9; +} +.note-editor .btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #222222; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .btn-inverse:hover, +.note-editor .btn-inverse:focus, +.note-editor .btn-inverse:active, +.note-editor .btn-inverse.active, +.note-editor .btn-inverse.disabled, +.note-editor .btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} +.note-editor .btn-inverse:active, +.note-editor .btn-inverse.active { + background-color: #080808 \9; +} +.note-editor button.btn, +.note-editor input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} +.note-editor button.btn::-moz-focus-inner, +.note-editor input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +.note-editor button.btn.btn-large, +.note-editor input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +.note-editor button.btn.btn-small, +.note-editor input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} +.note-editor button.btn.btn-mini, +.note-editor input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} +.note-editor .btn-link, +.note-editor .btn-link:active, +.note-editor .btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-link { + border-color: transparent; + cursor: pointer; + color: #0088cc; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .btn-link:hover, +.note-editor .btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} +.note-editor .btn-link[disabled]:hover, +.note-editor .btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} +.note-editor .btn-group { + position: relative; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + font-size: 0; + vertical-align: middle; + white-space: nowrap; + *margin-left: .3em; +} +.note-editor .btn-group:first-child { + *margin-left: 0; +} +.note-editor .btn-group + .btn-group { + margin-left: 5px; +} +.note-editor .btn-toolbar { + font-size: 0; + margin-top: 10px; + margin-bottom: 10px; +} +.note-editor .btn-toolbar > .btn + .btn, +.note-editor .btn-toolbar > .btn-group + .btn, +.note-editor .btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} +.note-editor .btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .btn-group > .btn + .btn { + margin-left: -1px; +} +.note-editor .btn-group > .btn, +.note-editor .btn-group > .dropdown-menu, +.note-editor .btn-group > .popover { + font-size: 14px; +} +.note-editor .btn-group > .btn-mini { + font-size: 10.5px; +} +.note-editor .btn-group > .btn-small { + font-size: 11.9px; +} +.note-editor .btn-group > .btn-large { + font-size: 17.5px; +} +.note-editor .btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .btn-group > .btn:last-child, +.note-editor .btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.note-editor .btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.note-editor .btn-group > .btn.large:last-child, +.note-editor .btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.note-editor .btn-group > .btn:hover, +.note-editor .btn-group > .btn:focus, +.note-editor .btn-group > .btn:active, +.note-editor .btn-group > .btn.active { + z-index: 2; +} +.note-editor .btn-group .dropdown-toggle:active, +.note-editor .btn-group.open .dropdown-toggle { + outline: 0; +} +.note-editor .btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.note-editor .btn-group > .btn-mini + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; +} +.note-editor .btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.note-editor .btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; +} +.note-editor .btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); +} +.note-editor .btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} +.note-editor .btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} +.note-editor .btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} +.note-editor .btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} +.note-editor .btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} +.note-editor .btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} +.note-editor .btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} +.note-editor .btn .caret { + margin-top: 8px; + margin-left: 0; +} +.note-editor .btn-large .caret { + margin-top: 6px; +} +.note-editor .btn-large .caret { + border-left-width: 5px; + border-right-width: 5px; + border-top-width: 5px; +} +.note-editor .btn-mini .caret, +.note-editor .btn-small .caret { + margin-top: 8px; +} +.note-editor .dropup .btn-large .caret { + border-bottom-width: 5px; +} +.note-editor .btn-primary .caret, +.note-editor .btn-warning .caret, +.note-editor .btn-danger .caret, +.note-editor .btn-info .caret, +.note-editor .btn-success .caret, +.note-editor .btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.note-editor .btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .btn-group-vertical > .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.note-editor .btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.note-editor .btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.note-editor .btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} +.note-editor .btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.note-editor .alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .alert, +.note-editor .alert h4 { + color: #c09853; +} +.note-editor .alert h4 { + margin: 0; +} +.note-editor .alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} +.note-editor .alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.note-editor .alert-success h4 { + color: #468847; +} +.note-editor .alert-danger, +.note-editor .alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.note-editor .alert-danger h4, +.note-editor .alert-error h4 { + color: #b94a48; +} +.note-editor .alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.note-editor .alert-info h4 { + color: #3a87ad; +} +.note-editor .alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.note-editor .alert-block > p, +.note-editor .alert-block > ul { + margin-bottom: 0; +} +.note-editor .alert-block p + p { + margin-top: 5px; +} +.note-editor .nav { + margin-left: 0; + margin-bottom: 20px; + list-style: none; +} +.note-editor .nav > li > a { + display: block; +} +.note-editor .nav > li > a:hover, +.note-editor .nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.note-editor .nav > li > a > img { + max-width: none; +} +.note-editor .nav > .pull-right { + float: right; +} +.note-editor .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.note-editor .nav li + .nav-header { + margin-top: 9px; +} +.note-editor .nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.note-editor .nav-list > li > a, +.note-editor .nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.note-editor .nav-list > li > a { + padding: 3px 15px; +} +.note-editor .nav-list > .active > a, +.note-editor .nav-list > .active > a:hover, +.note-editor .nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.note-editor .nav-list [class^="icon-"], +.note-editor .nav-list [class*=" icon-"] { + margin-right: 2px; +} +.note-editor .nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.note-editor .nav-tabs, +.note-editor .nav-pills { + *zoom: 1; +} +.note-editor .nav-tabs:before, +.note-editor .nav-pills:before, +.note-editor .nav-tabs:after, +.note-editor .nav-pills:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .nav-tabs:after, +.note-editor .nav-pills:after { + clear: both; +} +.note-editor .nav-tabs > li, +.note-editor .nav-pills > li { + float: left; +} +.note-editor .nav-tabs > li > a, +.note-editor .nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.note-editor .nav-tabs { + border-bottom: 1px solid #ddd; +} +.note-editor .nav-tabs > li { + margin-bottom: -1px; +} +.note-editor .nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.note-editor .nav-tabs > li > a:hover, +.note-editor .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} +.note-editor .nav-tabs > .active > a, +.note-editor .nav-tabs > .active > a:hover, +.note-editor .nav-tabs > .active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.note-editor .nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.note-editor .nav-pills > .active > a, +.note-editor .nav-pills > .active > a:hover, +.note-editor .nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} +.note-editor .nav-stacked > li { + float: none; +} +.note-editor .nav-stacked > li > a { + margin-right: 0; +} +.note-editor .nav-tabs.nav-stacked { + border-bottom: 0; +} +.note-editor .nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.note-editor .nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .nav-tabs.nav-stacked > li > a:hover, +.note-editor .nav-tabs.nav-stacked > li > a:focus { + border-color: #ddd; + z-index: 2; +} +.note-editor .nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.note-editor .nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.note-editor .nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.note-editor .nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.note-editor .nav .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.note-editor .nav .dropdown-toggle:hover .caret, +.note-editor .nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +.note-editor .nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.note-editor .nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.note-editor .nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.note-editor .nav > .dropdown.active > a:hover, +.note-editor .nav > .dropdown.active > a:focus { + cursor: pointer; +} +.note-editor .nav-tabs .open .dropdown-toggle, +.note-editor .nav-pills .open .dropdown-toggle, +.note-editor .nav > li.dropdown.open.active > a:hover, +.note-editor .nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.note-editor .nav li.dropdown.open .caret, +.note-editor .nav li.dropdown.open.active .caret, +.note-editor .nav li.dropdown.open a:hover .caret, +.note-editor .nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.note-editor .tabs-stacked .open > a:hover, +.note-editor .tabs-stacked .open > a:focus { + border-color: #999999; +} +.note-editor .tabbable { + *zoom: 1; +} +.note-editor .tabbable:before, +.note-editor .tabbable:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .tabbable:after { + clear: both; +} +.note-editor .tab-content { + overflow: auto; +} +.note-editor .tabs-below > .nav-tabs, +.note-editor .tabs-right > .nav-tabs, +.note-editor .tabs-left > .nav-tabs { + border-bottom: 0; +} +.note-editor .tab-content > .tab-pane, +.note-editor .pill-content > .pill-pane { + display: none; +} +.note-editor .tab-content > .active, +.note-editor .pill-content > .active { + display: block; +} +.note-editor .tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} +.note-editor .tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.note-editor .tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.note-editor .tabs-below > .nav-tabs > li > a:hover, +.note-editor .tabs-below > .nav-tabs > li > a:focus { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.note-editor .tabs-below > .nav-tabs > .active > a, +.note-editor .tabs-below > .nav-tabs > .active > a:hover, +.note-editor .tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} +.note-editor .tabs-left > .nav-tabs > li, +.note-editor .tabs-right > .nav-tabs > li { + float: none; +} +.note-editor .tabs-left > .nav-tabs > li > a, +.note-editor .tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.note-editor .tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.note-editor .tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.note-editor .tabs-left > .nav-tabs > li > a:hover, +.note-editor .tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.note-editor .tabs-left > .nav-tabs .active > a, +.note-editor .tabs-left > .nav-tabs .active > a:hover, +.note-editor .tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.note-editor .tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.note-editor .tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note-editor .tabs-right > .nav-tabs > li > a:hover, +.note-editor .tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.note-editor .tabs-right > .nav-tabs .active > a, +.note-editor .tabs-right > .nav-tabs .active > a:hover, +.note-editor .tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.note-editor .nav > .disabled > a { + color: #999999; +} +.note-editor .nav > .disabled > a:hover, +.note-editor .nav > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + cursor: default; +} +.note-editor .navbar { + overflow: visible; + margin-bottom: 20px; + *position: relative; + *z-index: 2; +} +.note-editor .navbar-inner { + min-height: 40px; + padding-left: 20px; + padding-right: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + *zoom: 1; +} +.note-editor .navbar-inner:before, +.note-editor .navbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .navbar-inner:after { + clear: both; +} +.note-editor .navbar .container { + width: auto; +} +.note-editor .nav-collapse.collapse { + height: auto; + overflow: visible; +} +.note-editor .navbar .brand { + float: left; + display: block; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} +.note-editor .navbar .brand:hover, +.note-editor .navbar .brand:focus { + text-decoration: none; +} +.note-editor .navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} +.note-editor .navbar-link { + color: #777777; +} +.note-editor .navbar-link:hover, +.note-editor .navbar-link:focus { + color: #333333; +} +.note-editor .navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-left: 1px solid #f2f2f2; + border-right: 1px solid #ffffff; +} +.note-editor .navbar .btn, +.note-editor .navbar .btn-group { + margin-top: 5px; +} +.note-editor .navbar .btn-group .btn, +.note-editor .navbar .input-prepend .btn, +.note-editor .navbar .input-append .btn, +.note-editor .navbar .input-prepend .btn-group, +.note-editor .navbar .input-append .btn-group { + margin-top: 0; +} +.note-editor .navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.note-editor .navbar-form:before, +.note-editor .navbar-form:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .navbar-form:after { + clear: both; +} +.note-editor .navbar-form input, +.note-editor .navbar-form select, +.note-editor .navbar-form .radio, +.note-editor .navbar-form .checkbox { + margin-top: 5px; +} +.note-editor .navbar-form input, +.note-editor .navbar-form select, +.note-editor .navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} +.note-editor .navbar-form input[type="image"], +.note-editor .navbar-form input[type="checkbox"], +.note-editor .navbar-form input[type="radio"] { + margin-top: 3px; +} +.note-editor .navbar-form .input-append, +.note-editor .navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} +.note-editor .navbar-form .input-append input, +.note-editor .navbar-form .input-prepend input { + margin-top: 0; +} +.note-editor .navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} +.note-editor .navbar-search .search-query { + margin-bottom: 0; + padding: 4px 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.note-editor .navbar-static-top { + position: static; + margin-bottom: 0; +} +.note-editor .navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .navbar-fixed-top, +.note-editor .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.note-editor .navbar-fixed-top .navbar-inner, +.note-editor .navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.note-editor .navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.note-editor .navbar-fixed-top .navbar-inner, +.note-editor .navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.note-editor .navbar-static-top .container, +.note-editor .navbar-fixed-top .container, +.note-editor .navbar-fixed-bottom .container { + width: 940px; +} +.note-editor .navbar-fixed-top { + top: 0; +} +.note-editor .navbar-fixed-top .navbar-inner, +.note-editor .navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1); + box-shadow: 0 1px 10px rgba(0,0,0,.1); +} +.note-editor .navbar-fixed-bottom { + bottom: 0; +} +.note-editor .navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + box-shadow: 0 -1px 10px rgba(0,0,0,.1); +} +.note-editor .navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.note-editor .navbar .nav.pull-right { + float: right; + margin-right: 0; +} +.note-editor .navbar .nav > li { + float: left; +} +.note-editor .navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} +.note-editor .navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} +.note-editor .navbar .nav > li > a:focus, +.note-editor .navbar .nav > li > a:hover { + background-color: transparent; + color: #333333; + text-decoration: none; +} +.note-editor .navbar .nav > .active > a, +.note-editor .navbar .nav > .active > a:hover, +.note-editor .navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} +.note-editor .navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e5e5e5; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); +} +.note-editor .navbar .btn-navbar:hover, +.note-editor .navbar .btn-navbar:focus, +.note-editor .navbar .btn-navbar:active, +.note-editor .navbar .btn-navbar.active, +.note-editor .navbar .btn-navbar.disabled, +.note-editor .navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} +.note-editor .navbar .btn-navbar:active, +.note-editor .navbar .btn-navbar.active { + background-color: #cccccc \9; +} +.note-editor .navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.note-editor .btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.note-editor .navbar .nav > li > .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.note-editor .navbar .nav > li > .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.note-editor .navbar-fixed-bottom .nav > li > .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.note-editor .navbar-fixed-bottom .nav > li > .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.note-editor .navbar .nav li.dropdown > a:hover .caret, +.note-editor .navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.note-editor .navbar .nav li.dropdown.open > .dropdown-toggle, +.note-editor .navbar .nav li.dropdown.active > .dropdown-toggle, +.note-editor .navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #e5e5e5; + color: #555555; +} +.note-editor .navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +.note-editor .navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.note-editor .navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.note-editor .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.note-editor .navbar .pull-right > li > .dropdown-menu, +.note-editor .navbar .nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.note-editor .navbar .pull-right > li > .dropdown-menu:before, +.note-editor .navbar .nav > li > .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.note-editor .navbar .pull-right > li > .dropdown-menu:after, +.note-editor .navbar .nav > li > .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.note-editor .navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.note-editor .navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.note-editor .navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); + border-color: #252525; +} +.note-editor .navbar-inverse .brand, +.note-editor .navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.note-editor .navbar-inverse .brand:hover, +.note-editor .navbar-inverse .nav > li > a:hover, +.note-editor .navbar-inverse .brand:focus, +.note-editor .navbar-inverse .nav > li > a:focus { + color: #ffffff; +} +.note-editor .navbar-inverse .brand { + color: #999999; +} +.note-editor .navbar-inverse .navbar-text { + color: #999999; +} +.note-editor .navbar-inverse .nav > li > a:focus, +.note-editor .navbar-inverse .nav > li > a:hover { + background-color: transparent; + color: #ffffff; +} +.note-editor .navbar-inverse .nav .active > a, +.note-editor .navbar-inverse .nav .active > a:hover, +.note-editor .navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} +.note-editor .navbar-inverse .navbar-link { + color: #999999; +} +.note-editor .navbar-inverse .navbar-link:hover, +.note-editor .navbar-inverse .navbar-link:focus { + color: #ffffff; +} +.note-editor .navbar-inverse .divider-vertical { + border-left-color: #111111; + border-right-color: #222222; +} +.note-editor .navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.note-editor .navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.note-editor .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #111111; + color: #ffffff; +} +.note-editor .navbar-inverse .nav li.dropdown > a:hover .caret, +.note-editor .navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.note-editor .navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.note-editor .navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.note-editor .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.note-editor .navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.note-editor .navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} +.note-editor .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.note-editor .navbar-inverse .navbar-search .search-query:focus, +.note-editor .navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.note-editor .navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #040404; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.note-editor .navbar-inverse .btn-navbar:hover, +.note-editor .navbar-inverse .btn-navbar:focus, +.note-editor .navbar-inverse .btn-navbar:active, +.note-editor .navbar-inverse .btn-navbar.active, +.note-editor .navbar-inverse .btn-navbar.disabled, +.note-editor .navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} +.note-editor .navbar-inverse .btn-navbar:active, +.note-editor .navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} +.note-editor .breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .breadcrumb > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + text-shadow: 0 1px 0 #ffffff; +} +.note-editor .breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} +.note-editor .breadcrumb > .active { + color: #999999; +} +.note-editor .pagination { + margin: 20px 0; +} +.note-editor .pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.note-editor .pagination ul > li { + display: inline; +} +.note-editor .pagination ul > li > a, +.note-editor .pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} +.note-editor .pagination ul > li > a:hover, +.note-editor .pagination ul > li > a:focus, +.note-editor .pagination ul > .active > a, +.note-editor .pagination ul > .active > span { + background-color: #f5f5f5; +} +.note-editor .pagination ul > .active > a, +.note-editor .pagination ul > .active > span { + color: #999999; + cursor: default; +} +.note-editor .pagination ul > .disabled > span, +.note-editor .pagination ul > .disabled > a, +.note-editor .pagination ul > .disabled > a:hover, +.note-editor .pagination ul > .disabled > a:focus { + color: #999999; + background-color: transparent; + cursor: default; +} +.note-editor .pagination ul > li:first-child > a, +.note-editor .pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .pagination ul > li:last-child > a, +.note-editor .pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.note-editor .pagination-centered { + text-align: center; +} +.note-editor .pagination-right { + text-align: right; +} +.note-editor .pagination-large ul > li > a, +.note-editor .pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} +.note-editor .pagination-large ul > li:first-child > a, +.note-editor .pagination-large ul > li:first-child > span { + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.note-editor .pagination-large ul > li:last-child > a, +.note-editor .pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.note-editor .pagination-mini ul > li:first-child > a, +.note-editor .pagination-small ul > li:first-child > a, +.note-editor .pagination-mini ul > li:first-child > span, +.note-editor .pagination-small ul > li:first-child > span { + -webkit-border-top-left-radius: 3px; + -moz-border-radius-topleft: 3px; + border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + border-bottom-left-radius: 3px; +} +.note-editor .pagination-mini ul > li:last-child > a, +.note-editor .pagination-small ul > li:last-child > a, +.note-editor .pagination-mini ul > li:last-child > span, +.note-editor .pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + -moz-border-radius-topright: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + -moz-border-radius-bottomright: 3px; + border-bottom-right-radius: 3px; +} +.note-editor .pagination-small ul > li > a, +.note-editor .pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} +.note-editor .pagination-mini ul > li > a, +.note-editor .pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} +.note-editor .pager { + margin: 20px 0; + list-style: none; + text-align: center; + *zoom: 1; +} +.note-editor .pager:before, +.note-editor .pager:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .pager:after { + clear: both; +} +.note-editor .pager li { + display: inline; +} +.note-editor .pager li > a, +.note-editor .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.note-editor .pager li > a:hover, +.note-editor .pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.note-editor .pager .next > a, +.note-editor .pager .next > span { + float: right; +} +.note-editor .pager .previous > a, +.note-editor .pager .previous > span { + float: left; +} +.note-editor .pager .disabled > a, +.note-editor .pager .disabled > a:hover, +.note-editor .pager .disabled > a:focus, +.note-editor .pager .disabled > span { + color: #999999; + background-color: #fff; + cursor: default; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.note-editor .modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 640px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + outline: none; +} +.note-editor .modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.note-editor .modal.fade.in { + top: 10%; +} +.note-editor .modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.note-editor .modal-header .close { + margin-top: 2px; +} +.note-editor .modal-header h3 { + margin: 0; + line-height: 30px; +} +.note-editor .modal-body { + position: relative; + overflow-y: auto; + max-height: 600px; + padding: 15px; +} +.note-editor .modal-form { + margin-bottom: 0; +} +.note-editor .modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.note-editor .modal-footer:before, +.note-editor .modal-footer:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .modal-footer:after { + clear: both; +} +.note-editor .modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.note-editor .modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.note-editor .modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.tooltip { + position: absolute; + z-index: 10000; + display: block; + visibility: visible; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.note-editor .popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.note-editor .popover.top { + margin-top: -10px; +} +.note-editor .popover.right { + margin-left: 10px; +} +.note-editor .popover.bottom { + margin-top: 10px; +} +.note-editor .popover.left { + margin-left: -10px; +} +.note-editor .popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.note-editor .popover-title:empty { + display: none; +} +.note-editor .popover-content { + padding: 9px 14px; +} +.note-editor .popover .arrow, +.note-editor .popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.note-editor .popover .arrow { + border-width: 11px; +} +.note-editor .popover .arrow:after { + border-width: 10px; + content: ""; +} +.note-editor .popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.note-editor .popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.note-editor .popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.note-editor .popover.right .arrow:after { + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.note-editor .popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.note-editor .popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.note-editor .popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.note-editor .popover.left .arrow:after { + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.note-editor .thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.note-editor .thumbnails:before, +.note-editor .thumbnails:after { + display: table; + content: ""; + line-height: 0; +} +.note-editor .thumbnails:after { + clear: both; +} +.note-editor .row-fluid .thumbnails { + margin-left: 0; +} +.note-editor .thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} +.note-editor .thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.note-editor a.thumbnail:hover, +.note-editor a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.note-editor .thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.note-editor .thumbnail .caption { + padding: 9px; + color: #555555; +} +.note-editor .media, +.note-editor .media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} +.note-editor .media, +.note-editor .media .media { + margin-top: 15px; +} +.note-editor .media:first-child { + margin-top: 0; +} +.note-editor .media-object { + display: block; +} +.note-editor .media-heading { + margin: 0 0 5px; +} +.note-editor .media > .pull-left { + margin-right: 10px; +} +.note-editor .media > .pull-right { + margin-left: 10px; +} +.note-editor .media-list { + margin-left: 0; + list-style: none; +} +.note-editor .label, +.note-editor .badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + vertical-align: baseline; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; +} +.note-editor .label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.note-editor .badge { + padding-left: 9px; + padding-right: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} +.note-editor .label:empty, +.note-editor .badge:empty { + display: none; +} +.note-editor a.label:hover, +.note-editor a.label:focus, +.note-editor a.badge:hover, +.note-editor a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.note-editor .label-important, +.note-editor .badge-important { + background-color: #b94a48; +} +.note-editor .label-important[href], +.note-editor .badge-important[href] { + background-color: #953b39; +} +.note-editor .label-warning, +.note-editor .badge-warning { + background-color: #f89406; +} +.note-editor .label-warning[href], +.note-editor .badge-warning[href] { + background-color: #c67605; +} +.note-editor .label-success, +.note-editor .badge-success { + background-color: #468847; +} +.note-editor .label-success[href], +.note-editor .badge-success[href] { + background-color: #356635; +} +.note-editor .label-info, +.note-editor .badge-info { + background-color: #3a87ad; +} +.note-editor .label-info[href], +.note-editor .badge-info[href] { + background-color: #2d6987; +} +.note-editor .label-inverse, +.note-editor .badge-inverse { + background-color: #333333; +} +.note-editor .label-inverse[href], +.note-editor .badge-inverse[href] { + background-color: #1a1a1a; +} +.note-editor .btn .label, +.note-editor .btn .badge { + position: relative; + top: -1px; +} +.note-editor .btn-mini .label, +.note-editor .btn-mini .badge { + top: 0; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.note-editor .progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .progress .bar { + width: 0%; + height: 100%; + color: #ffffff; + float: left; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.note-editor .progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); +} +.note-editor .progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.note-editor .progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.note-editor .progress-danger .bar, +.note-editor .progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} +.note-editor .progress-danger.progress-striped .bar, +.note-editor .progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-success .bar, +.note-editor .progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} +.note-editor .progress-success.progress-striped .bar, +.note-editor .progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-info .bar, +.note-editor .progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} +.note-editor .progress-info.progress-striped .bar, +.note-editor .progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-warning .bar, +.note-editor .progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} +.note-editor .progress-warning.progress-striped .bar, +.note-editor .progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .accordion { + margin-bottom: 20px; +} +.note-editor .accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.note-editor .accordion-heading { + border-bottom: 0; +} +.note-editor .accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.note-editor .accordion-toggle { + cursor: pointer; +} +.note-editor .accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.note-editor .carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} +.note-editor .carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.note-editor .carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.note-editor .carousel-inner > .item > img, +.note-editor .carousel-inner > .item > a > img { + display: block; + line-height: 1; +} +.note-editor .carousel-inner > .active, +.note-editor .carousel-inner > .next, +.note-editor .carousel-inner > .prev { + display: block; +} +.note-editor .carousel-inner > .active { + left: 0; +} +.note-editor .carousel-inner > .next, +.note-editor .carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.note-editor .carousel-inner > .next { + left: 100%; +} +.note-editor .carousel-inner > .prev { + left: -100%; +} +.note-editor .carousel-inner > .next.left, +.note-editor .carousel-inner > .prev.right { + left: 0; +} +.note-editor .carousel-inner > .active.left { + left: -100%; +} +.note-editor .carousel-inner > .active.right { + left: 100%; +} +.note-editor .carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.note-editor .carousel-control.right { + left: auto; + right: 15px; +} +.note-editor .carousel-control:hover, +.note-editor .carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.note-editor .carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} +.note-editor .carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} +.note-editor .carousel-indicators .active { + background-color: #fff; +} +.note-editor .carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.note-editor .carousel-caption h4, +.note-editor .carousel-caption p { + color: #ffffff; + line-height: 20px; +} +.note-editor .carousel-caption h4 { + margin: 0 0 5px; +} +.note-editor .carousel-caption p { + margin-bottom: 0; +} +.note-editor .hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.note-editor .hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.note-editor .hero-unit li { + line-height: 30px; +} +.note-editor .pull-right { + float: right; +} +.note-editor .pull-left { + float: left; +} +.note-editor .hide { + display: none; +} +.note-editor .show { + display: block; +} +.note-editor .invisible { + visibility: hidden; +} +.note-editor .affix { + position: fixed; +} diff --git a/vendor/assets/components/summernote/dist/summernote-bs3.css b/vendor/assets/components/summernote/dist/summernote-bs3.css new file mode 100644 index 000000000..71d6a4f2e --- /dev/null +++ b/vendor/assets/components/summernote/dist/summernote-bs3.css @@ -0,0 +1,6057 @@ +.note-editor { + /*! normalize.css v2.1.3 | MIT License | git.io/normalize */ + +} +.note-editor article, +.note-editor aside, +.note-editor details, +.note-editor figcaption, +.note-editor figure, +.note-editor footer, +.note-editor header, +.note-editor hgroup, +.note-editor main, +.note-editor nav, +.note-editor section, +.note-editor summary { + display: block; +} +.note-editor audio, +.note-editor canvas, +.note-editor video { + display: inline-block; +} +.note-editor audio:not([controls]) { + display: none; + height: 0; +} +.note-editor [hidden], +.note-editor template { + display: none; +} +.note-editor html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +.note-editor body { + margin: 0; +} +.note-editor a { + background: transparent; +} +.note-editor a:focus { + outline: thin dotted; +} +.note-editor a:active, +.note-editor a:hover { + outline: 0; +} +.note-editor h1 { + font-size: 2em; + margin: 0.67em 0; +} +.note-editor abbr[title] { + border-bottom: 1px dotted; +} +.note-editor b, +.note-editor strong { + font-weight: bold; +} +.note-editor dfn { + font-style: italic; +} +.note-editor hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +.note-editor mark { + background: #ff0; + color: #000; +} +.note-editor code, +.note-editor kbd, +.note-editor pre, +.note-editor samp { + font-family: monospace, serif; + font-size: 1em; +} +.note-editor pre { + white-space: pre-wrap; +} +.note-editor q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} +.note-editor small { + font-size: 80%; +} +.note-editor sub, +.note-editor sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +.note-editor sup { + top: -0.5em; +} +.note-editor sub { + bottom: -0.25em; +} +.note-editor img { + border: 0; +} +.note-editor svg:not(:root) { + overflow: hidden; +} +.note-editor figure { + margin: 0; +} +.note-editor fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +.note-editor legend { + border: 0; + padding: 0; +} +.note-editor button, +.note-editor input, +.note-editor select, +.note-editor textarea { + font-family: inherit; + font-size: 100%; + margin: 0; +} +.note-editor button, +.note-editor input { + line-height: normal; +} +.note-editor button, +.note-editor select { + text-transform: none; +} +.note-editor button, +.note-editor html input[type="button"], +.note-editor input[type="reset"], +.note-editor input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +.note-editor button[disabled], +.note-editor html input[disabled] { + cursor: default; +} +.note-editor input[type="checkbox"], +.note-editor input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +.note-editor input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +.note-editor input[type="search"]::-webkit-search-cancel-button, +.note-editor input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +.note-editor button::-moz-focus-inner, +.note-editor input::-moz-focus-inner { + border: 0; + padding: 0; +} +.note-editor textarea { + overflow: auto; + vertical-align: top; +} +.note-editor table { + border-collapse: collapse; + border-spacing: 0; +} +@media print { + .note-editor * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + .note-editor a, + .note-editor a:visited { + text-decoration: underline; + } + .note-editor a[href]:after { + content: " (" attr(href) ")"; + } + .note-editor abbr[title]:after { + content: " (" attr(title) ")"; + } + .note-editor .ir a:after, + .note-editor a[href^="javascript:"]:after, + .note-editor a[href^="#"]:after { + content: ""; + } + .note-editor pre, + .note-editor blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + .note-editor thead { + display: table-header-group; + } + .note-editor tr, + .note-editor img { + page-break-inside: avoid; + } + .note-editor img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + .note-editor p, + .note-editor h2, + .note-editor h3 { + orphans: 3; + widows: 3; + } + .note-editor h2, + .note-editor h3 { + page-break-after: avoid; + } + .note-editor .navbar { + display: none; + } + .note-editor .table td, + .note-editor .table th { + background-color: #fff !important; + } + .note-editor .btn > .caret, + .note-editor .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .note-editor .label { + border: 1px solid #000; + } + .note-editor .table { + border-collapse: collapse !important; + } + .note-editor .table-bordered th, + .note-editor .table-bordered td { + border: 1px solid #ddd !important; + } +} +.note-editor *, +.note-editor *:before, +.note-editor *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +.note-editor body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} +.note-editor input, +.note-editor button, +.note-editor select, +.note-editor textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.note-editor a { + color: #428bca; + text-decoration: none; +} +.note-editor a:hover, +.note-editor a:focus { + color: #2a6496; + text-decoration: underline; +} +.note-editor a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor img { + vertical-align: middle; +} +.note-editor .img-responsive { + display: block; + max-width: 100%; + height: auto; +} +.note-editor .img-rounded { + border-radius: 6px; +} +.note-editor .img-thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.note-editor .img-circle { + border-radius: 50%; +} +.note-editor hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.note-editor .sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.note-editor p { + margin: 0 0 10px; +} +.note-editor .lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 200; + line-height: 1.4; +} +@media (min-width: 768px) { + .note-editor .lead { + font-size: 21px; + } +} +.note-editor small, +.note-editor .small { + font-size: 85%; +} +.note-editor cite { + font-style: normal; +} +.note-editor .text-muted { + color: #999999; +} +.note-editor .text-primary { + color: #428bca; +} +.note-editor .text-primary:hover { + color: #3071a9; +} +.note-editor .text-warning { + color: #c09853; +} +.note-editor .text-warning:hover { + color: #a47e3c; +} +.note-editor .text-danger { + color: #b94a48; +} +.note-editor .text-danger:hover { + color: #953b39; +} +.note-editor .text-success { + color: #468847; +} +.note-editor .text-success:hover { + color: #356635; +} +.note-editor .text-info { + color: #3a87ad; +} +.note-editor .text-info:hover { + color: #2d6987; +} +.note-editor .text-left { + text-align: left; +} +.note-editor .text-right { + text-align: right; +} +.note-editor .text-center { + text-align: center; +} +.note-editor h1, +.note-editor h2, +.note-editor h3, +.note-editor h4, +.note-editor h5, +.note-editor h6, +.note-editor .h1, +.note-editor .h2, +.note-editor .h3, +.note-editor .h4, +.note-editor .h5, +.note-editor .h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +.note-editor h1 small, +.note-editor h2 small, +.note-editor h3 small, +.note-editor h4 small, +.note-editor h5 small, +.note-editor h6 small, +.note-editor .h1 small, +.note-editor .h2 small, +.note-editor .h3 small, +.note-editor .h4 small, +.note-editor .h5 small, +.note-editor .h6 small, +.note-editor h1 .small, +.note-editor h2 .small, +.note-editor h3 .small, +.note-editor h4 .small, +.note-editor h5 .small, +.note-editor h6 .small, +.note-editor .h1 .small, +.note-editor .h2 .small, +.note-editor .h3 .small, +.note-editor .h4 .small, +.note-editor .h5 .small, +.note-editor .h6 .small { + font-weight: normal; + line-height: 1; + color: #999999; +} +.note-editor h1, +.note-editor h2, +.note-editor h3 { + margin-top: 20px; + margin-bottom: 10px; +} +.note-editor h1 small, +.note-editor h2 small, +.note-editor h3 small, +.note-editor h1 .small, +.note-editor h2 .small, +.note-editor h3 .small { + font-size: 65%; +} +.note-editor h4, +.note-editor h5, +.note-editor h6 { + margin-top: 10px; + margin-bottom: 10px; +} +.note-editor h4 small, +.note-editor h5 small, +.note-editor h6 small, +.note-editor h4 .small, +.note-editor h5 .small, +.note-editor h6 .small { + font-size: 75%; +} +.note-editor h1, +.note-editor .h1 { + font-size: 36px; +} +.note-editor h2, +.note-editor .h2 { + font-size: 30px; +} +.note-editor h3, +.note-editor .h3 { + font-size: 24px; +} +.note-editor h4, +.note-editor .h4 { + font-size: 18px; +} +.note-editor h5, +.note-editor .h5 { + font-size: 14px; +} +.note-editor h6, +.note-editor .h6 { + font-size: 12px; +} +.note-editor .page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} +.note-editor ul, +.note-editor ol { + margin-top: 0; + margin-bottom: 10px; +} +.note-editor ul ul, +.note-editor ol ul, +.note-editor ul ol, +.note-editor ol ol { + margin-bottom: 0; +} +.note-editor .list-unstyled { + padding-left: 0; + list-style: none; +} +.note-editor .list-inline { + padding-left: 0; + list-style: none; +} +.note-editor .list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +.note-editor dl { + margin-bottom: 20px; +} +.note-editor dt, +.note-editor dd { + line-height: 1.428571429; +} +.note-editor dt { + font-weight: bold; +} +.note-editor dd { + margin-left: 0; +} +@media (min-width: 768px) { + .note-editor .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .note-editor .dl-horizontal dd { + margin-left: 180px; + } + .note-editor .dl-horizontal dd:before, + .note-editor .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .note-editor .dl-horizontal dd:after { + clear: both; + } + .note-editor .dl-horizontal dd:before, + .note-editor .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .note-editor .dl-horizontal dd:after { + clear: both; + } +} +.note-editor abbr[title], +.note-editor abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +.note-editor abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +.note-editor blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +.note-editor blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +.note-editor blockquote p:last-child { + margin-bottom: 0; +} +.note-editor blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} +.note-editor blockquote small:before { + content: '\2014 \00A0'; +} +.note-editor blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +.note-editor blockquote.pull-right p, +.note-editor blockquote.pull-right small, +.note-editor blockquote.pull-right .small { + text-align: right; +} +.note-editor blockquote.pull-right small:before, +.note-editor blockquote.pull-right .small:before { + content: ''; +} +.note-editor blockquote.pull-right small:after, +.note-editor blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +.note-editor blockquote:before, +.note-editor blockquote:after { + content: ""; +} +.note-editor address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} +.note-editor code, +.note-editor kdb, +.note-editor pre, +.note-editor samp { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} +.note-editor code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + white-space: nowrap; + border-radius: 4px; +} +.note-editor pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +.note-editor pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.note-editor .pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.note-editor .container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.note-editor .container:before, +.note-editor .container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .container:after { + clear: both; +} +.note-editor .container:before, +.note-editor .container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .container:after { + clear: both; +} +.note-editor .row { + margin-left: -15px; + margin-right: -15px; +} +.note-editor .row:before, +.note-editor .row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .row:after { + clear: both; +} +.note-editor .row:before, +.note-editor .row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .row:after { + clear: both; +} +.note-editor .col-xs-1, +.note-editor .col-sm-1, +.note-editor .col-md-1, +.note-editor .col-lg-1, +.note-editor .col-xs-2, +.note-editor .col-sm-2, +.note-editor .col-md-2, +.note-editor .col-lg-2, +.note-editor .col-xs-3, +.note-editor .col-sm-3, +.note-editor .col-md-3, +.note-editor .col-lg-3, +.note-editor .col-xs-4, +.note-editor .col-sm-4, +.note-editor .col-md-4, +.note-editor .col-lg-4, +.note-editor .col-xs-5, +.note-editor .col-sm-5, +.note-editor .col-md-5, +.note-editor .col-lg-5, +.note-editor .col-xs-6, +.note-editor .col-sm-6, +.note-editor .col-md-6, +.note-editor .col-lg-6, +.note-editor .col-xs-7, +.note-editor .col-sm-7, +.note-editor .col-md-7, +.note-editor .col-lg-7, +.note-editor .col-xs-8, +.note-editor .col-sm-8, +.note-editor .col-md-8, +.note-editor .col-lg-8, +.note-editor .col-xs-9, +.note-editor .col-sm-9, +.note-editor .col-md-9, +.note-editor .col-lg-9, +.note-editor .col-xs-10, +.note-editor .col-sm-10, +.note-editor .col-md-10, +.note-editor .col-lg-10, +.note-editor .col-xs-11, +.note-editor .col-sm-11, +.note-editor .col-md-11, +.note-editor .col-lg-11, +.note-editor .col-xs-12, +.note-editor .col-sm-12, +.note-editor .col-md-12, +.note-editor .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.note-editor .col-xs-1, +.note-editor .col-xs-2, +.note-editor .col-xs-3, +.note-editor .col-xs-4, +.note-editor .col-xs-5, +.note-editor .col-xs-6, +.note-editor .col-xs-7, +.note-editor .col-xs-8, +.note-editor .col-xs-9, +.note-editor .col-xs-10, +.note-editor .col-xs-11 { + float: left; +} +.note-editor .col-xs-12 { + width: 100%; +} +.note-editor .col-xs-11 { + width: 91.66666666666666%; +} +.note-editor .col-xs-10 { + width: 83.33333333333334%; +} +.note-editor .col-xs-9 { + width: 75%; +} +.note-editor .col-xs-8 { + width: 66.66666666666666%; +} +.note-editor .col-xs-7 { + width: 58.333333333333336%; +} +.note-editor .col-xs-6 { + width: 50%; +} +.note-editor .col-xs-5 { + width: 41.66666666666667%; +} +.note-editor .col-xs-4 { + width: 33.33333333333333%; +} +.note-editor .col-xs-3 { + width: 25%; +} +.note-editor .col-xs-2 { + width: 16.666666666666664%; +} +.note-editor .col-xs-1 { + width: 8.333333333333332%; +} +.note-editor .col-xs-pull-12 { + right: 100%; +} +.note-editor .col-xs-pull-11 { + right: 91.66666666666666%; +} +.note-editor .col-xs-pull-10 { + right: 83.33333333333334%; +} +.note-editor .col-xs-pull-9 { + right: 75%; +} +.note-editor .col-xs-pull-8 { + right: 66.66666666666666%; +} +.note-editor .col-xs-pull-7 { + right: 58.333333333333336%; +} +.note-editor .col-xs-pull-6 { + right: 50%; +} +.note-editor .col-xs-pull-5 { + right: 41.66666666666667%; +} +.note-editor .col-xs-pull-4 { + right: 33.33333333333333%; +} +.note-editor .col-xs-pull-3 { + right: 25%; +} +.note-editor .col-xs-pull-2 { + right: 16.666666666666664%; +} +.note-editor .col-xs-pull-1 { + right: 8.333333333333332%; +} +.note-editor .col-xs-push-12 { + left: 100%; +} +.note-editor .col-xs-push-11 { + left: 91.66666666666666%; +} +.note-editor .col-xs-push-10 { + left: 83.33333333333334%; +} +.note-editor .col-xs-push-9 { + left: 75%; +} +.note-editor .col-xs-push-8 { + left: 66.66666666666666%; +} +.note-editor .col-xs-push-7 { + left: 58.333333333333336%; +} +.note-editor .col-xs-push-6 { + left: 50%; +} +.note-editor .col-xs-push-5 { + left: 41.66666666666667%; +} +.note-editor .col-xs-push-4 { + left: 33.33333333333333%; +} +.note-editor .col-xs-push-3 { + left: 25%; +} +.note-editor .col-xs-push-2 { + left: 16.666666666666664%; +} +.note-editor .col-xs-push-1 { + left: 8.333333333333332%; +} +.note-editor .col-xs-offset-12 { + margin-left: 100%; +} +.note-editor .col-xs-offset-11 { + margin-left: 91.66666666666666%; +} +.note-editor .col-xs-offset-10 { + margin-left: 83.33333333333334%; +} +.note-editor .col-xs-offset-9 { + margin-left: 75%; +} +.note-editor .col-xs-offset-8 { + margin-left: 66.66666666666666%; +} +.note-editor .col-xs-offset-7 { + margin-left: 58.333333333333336%; +} +.note-editor .col-xs-offset-6 { + margin-left: 50%; +} +.note-editor .col-xs-offset-5 { + margin-left: 41.66666666666667%; +} +.note-editor .col-xs-offset-4 { + margin-left: 33.33333333333333%; +} +.note-editor .col-xs-offset-3 { + margin-left: 25%; +} +.note-editor .col-xs-offset-2 { + margin-left: 16.666666666666664%; +} +.note-editor .col-xs-offset-1 { + margin-left: 8.333333333333332%; +} +@media (min-width: 768px) { + .note-editor .container { + width: 750px; + } + .note-editor .col-sm-1, + .note-editor .col-sm-2, + .note-editor .col-sm-3, + .note-editor .col-sm-4, + .note-editor .col-sm-5, + .note-editor .col-sm-6, + .note-editor .col-sm-7, + .note-editor .col-sm-8, + .note-editor .col-sm-9, + .note-editor .col-sm-10, + .note-editor .col-sm-11 { + float: left; + } + .note-editor .col-sm-12 { + width: 100%; + } + .note-editor .col-sm-11 { + width: 91.66666666666666%; + } + .note-editor .col-sm-10 { + width: 83.33333333333334%; + } + .note-editor .col-sm-9 { + width: 75%; + } + .note-editor .col-sm-8 { + width: 66.66666666666666%; + } + .note-editor .col-sm-7 { + width: 58.333333333333336%; + } + .note-editor .col-sm-6 { + width: 50%; + } + .note-editor .col-sm-5 { + width: 41.66666666666667%; + } + .note-editor .col-sm-4 { + width: 33.33333333333333%; + } + .note-editor .col-sm-3 { + width: 25%; + } + .note-editor .col-sm-2 { + width: 16.666666666666664%; + } + .note-editor .col-sm-1 { + width: 8.333333333333332%; + } + .note-editor .col-sm-pull-12 { + right: 100%; + } + .note-editor .col-sm-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-sm-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-sm-pull-9 { + right: 75%; + } + .note-editor .col-sm-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-sm-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-sm-pull-6 { + right: 50%; + } + .note-editor .col-sm-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-sm-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-sm-pull-3 { + right: 25%; + } + .note-editor .col-sm-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-sm-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-sm-push-12 { + left: 100%; + } + .note-editor .col-sm-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-sm-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-sm-push-9 { + left: 75%; + } + .note-editor .col-sm-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-sm-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-sm-push-6 { + left: 50%; + } + .note-editor .col-sm-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-sm-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-sm-push-3 { + left: 25%; + } + .note-editor .col-sm-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-sm-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-sm-offset-12 { + margin-left: 100%; + } + .note-editor .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-sm-offset-9 { + margin-left: 75%; + } + .note-editor .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-sm-offset-6 { + margin-left: 50%; + } + .note-editor .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-sm-offset-3 { + margin-left: 25%; + } + .note-editor .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } +} +@media (min-width: 992px) { + .note-editor .container { + width: 970px; + } + .note-editor .col-md-1, + .note-editor .col-md-2, + .note-editor .col-md-3, + .note-editor .col-md-4, + .note-editor .col-md-5, + .note-editor .col-md-6, + .note-editor .col-md-7, + .note-editor .col-md-8, + .note-editor .col-md-9, + .note-editor .col-md-10, + .note-editor .col-md-11 { + float: left; + } + .note-editor .col-md-12 { + width: 100%; + } + .note-editor .col-md-11 { + width: 91.66666666666666%; + } + .note-editor .col-md-10 { + width: 83.33333333333334%; + } + .note-editor .col-md-9 { + width: 75%; + } + .note-editor .col-md-8 { + width: 66.66666666666666%; + } + .note-editor .col-md-7 { + width: 58.333333333333336%; + } + .note-editor .col-md-6 { + width: 50%; + } + .note-editor .col-md-5 { + width: 41.66666666666667%; + } + .note-editor .col-md-4 { + width: 33.33333333333333%; + } + .note-editor .col-md-3 { + width: 25%; + } + .note-editor .col-md-2 { + width: 16.666666666666664%; + } + .note-editor .col-md-1 { + width: 8.333333333333332%; + } + .note-editor .col-md-pull-12 { + right: 100%; + } + .note-editor .col-md-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-md-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-md-pull-9 { + right: 75%; + } + .note-editor .col-md-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-md-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-md-pull-6 { + right: 50%; + } + .note-editor .col-md-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-md-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-md-pull-3 { + right: 25%; + } + .note-editor .col-md-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-md-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-md-push-12 { + left: 100%; + } + .note-editor .col-md-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-md-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-md-push-9 { + left: 75%; + } + .note-editor .col-md-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-md-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-md-push-6 { + left: 50%; + } + .note-editor .col-md-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-md-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-md-push-3 { + left: 25%; + } + .note-editor .col-md-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-md-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-md-offset-12 { + margin-left: 100%; + } + .note-editor .col-md-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-md-offset-9 { + margin-left: 75%; + } + .note-editor .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-md-offset-6 { + margin-left: 50%; + } + .note-editor .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-md-offset-3 { + margin-left: 25%; + } + .note-editor .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-md-offset-1 { + margin-left: 8.333333333333332%; + } +} +@media (min-width: 1200px) { + .note-editor .container { + width: 1170px; + } + .note-editor .col-lg-1, + .note-editor .col-lg-2, + .note-editor .col-lg-3, + .note-editor .col-lg-4, + .note-editor .col-lg-5, + .note-editor .col-lg-6, + .note-editor .col-lg-7, + .note-editor .col-lg-8, + .note-editor .col-lg-9, + .note-editor .col-lg-10, + .note-editor .col-lg-11 { + float: left; + } + .note-editor .col-lg-12 { + width: 100%; + } + .note-editor .col-lg-11 { + width: 91.66666666666666%; + } + .note-editor .col-lg-10 { + width: 83.33333333333334%; + } + .note-editor .col-lg-9 { + width: 75%; + } + .note-editor .col-lg-8 { + width: 66.66666666666666%; + } + .note-editor .col-lg-7 { + width: 58.333333333333336%; + } + .note-editor .col-lg-6 { + width: 50%; + } + .note-editor .col-lg-5 { + width: 41.66666666666667%; + } + .note-editor .col-lg-4 { + width: 33.33333333333333%; + } + .note-editor .col-lg-3 { + width: 25%; + } + .note-editor .col-lg-2 { + width: 16.666666666666664%; + } + .note-editor .col-lg-1 { + width: 8.333333333333332%; + } + .note-editor .col-lg-pull-12 { + right: 100%; + } + .note-editor .col-lg-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-lg-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-lg-pull-9 { + right: 75%; + } + .note-editor .col-lg-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-lg-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-lg-pull-6 { + right: 50%; + } + .note-editor .col-lg-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-lg-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-lg-pull-3 { + right: 25%; + } + .note-editor .col-lg-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-lg-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-lg-push-12 { + left: 100%; + } + .note-editor .col-lg-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-lg-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-lg-push-9 { + left: 75%; + } + .note-editor .col-lg-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-lg-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-lg-push-6 { + left: 50%; + } + .note-editor .col-lg-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-lg-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-lg-push-3 { + left: 25%; + } + .note-editor .col-lg-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-lg-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-lg-offset-12 { + margin-left: 100%; + } + .note-editor .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-lg-offset-9 { + margin-left: 75%; + } + .note-editor .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-lg-offset-6 { + margin-left: 50%; + } + .note-editor .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-lg-offset-3 { + margin-left: 25%; + } + .note-editor .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } +} +.note-editor table { + max-width: 100%; + background-color: transparent; +} +.note-editor th { + text-align: left; +} +.note-editor .table { + width: 100%; + margin-bottom: 20px; +} +.note-editor .table > thead > tr > th, +.note-editor .table > tbody > tr > th, +.note-editor .table > tfoot > tr > th, +.note-editor .table > thead > tr > td, +.note-editor .table > tbody > tr > td, +.note-editor .table > tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.note-editor .table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} +.note-editor .table > caption + thead > tr:first-child > th, +.note-editor .table > colgroup + thead > tr:first-child > th, +.note-editor .table > thead:first-child > tr:first-child > th, +.note-editor .table > caption + thead > tr:first-child > td, +.note-editor .table > colgroup + thead > tr:first-child > td, +.note-editor .table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.note-editor .table > tbody + tbody { + border-top: 2px solid #dddddd; +} +.note-editor .table .table { + background-color: #ffffff; +} +.note-editor .table-condensed > thead > tr > th, +.note-editor .table-condensed > tbody > tr > th, +.note-editor .table-condensed > tfoot > tr > th, +.note-editor .table-condensed > thead > tr > td, +.note-editor .table-condensed > tbody > tr > td, +.note-editor .table-condensed > tfoot > tr > td { + padding: 5px; +} +.note-editor .table-bordered { + border: 1px solid #dddddd; +} +.note-editor .table-bordered > thead > tr > th, +.note-editor .table-bordered > tbody > tr > th, +.note-editor .table-bordered > tfoot > tr > th, +.note-editor .table-bordered > thead > tr > td, +.note-editor .table-bordered > tbody > tr > td, +.note-editor .table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} +.note-editor .table-bordered > thead > tr > th, +.note-editor .table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.note-editor .table-striped > tbody > tr:nth-child(odd) > td, +.note-editor .table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.note-editor .table-hover > tbody > tr:hover > td, +.note-editor .table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} +.note-editor table col[class*="col-"] { + float: none; + display: table-column; +} +.note-editor table td[class*="col-"], +.note-editor table th[class*="col-"] { + float: none; + display: table-cell; +} +.note-editor .table > thead > tr > td.active, +.note-editor .table > tbody > tr > td.active, +.note-editor .table > tfoot > tr > td.active, +.note-editor .table > thead > tr > th.active, +.note-editor .table > tbody > tr > th.active, +.note-editor .table > tfoot > tr > th.active, +.note-editor .table > thead > tr.active > td, +.note-editor .table > tbody > tr.active > td, +.note-editor .table > tfoot > tr.active > td, +.note-editor .table > thead > tr.active > th, +.note-editor .table > tbody > tr.active > th, +.note-editor .table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.note-editor .table > thead > tr > td.success, +.note-editor .table > tbody > tr > td.success, +.note-editor .table > tfoot > tr > td.success, +.note-editor .table > thead > tr > th.success, +.note-editor .table > tbody > tr > th.success, +.note-editor .table > tfoot > tr > th.success, +.note-editor .table > thead > tr.success > td, +.note-editor .table > tbody > tr.success > td, +.note-editor .table > tfoot > tr.success > td, +.note-editor .table > thead > tr.success > th, +.note-editor .table > tbody > tr.success > th, +.note-editor .table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.note-editor .table-hover > tbody > tr > td.success:hover, +.note-editor .table-hover > tbody > tr > th.success:hover, +.note-editor .table-hover > tbody > tr.success:hover > td, +.note-editor .table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; + border-color: #c9e2b3; +} +.note-editor .table > thead > tr > td.danger, +.note-editor .table > tbody > tr > td.danger, +.note-editor .table > tfoot > tr > td.danger, +.note-editor .table > thead > tr > th.danger, +.note-editor .table > tbody > tr > th.danger, +.note-editor .table > tfoot > tr > th.danger, +.note-editor .table > thead > tr.danger > td, +.note-editor .table > tbody > tr.danger > td, +.note-editor .table > tfoot > tr.danger > td, +.note-editor .table > thead > tr.danger > th, +.note-editor .table > tbody > tr.danger > th, +.note-editor .table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #ebccd1; +} +.note-editor .table-hover > tbody > tr > td.danger:hover, +.note-editor .table-hover > tbody > tr > th.danger:hover, +.note-editor .table-hover > tbody > tr.danger:hover > td, +.note-editor .table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; + border-color: #e4b9c0; +} +.note-editor .table > thead > tr > td.warning, +.note-editor .table > tbody > tr > td.warning, +.note-editor .table > tfoot > tr > td.warning, +.note-editor .table > thead > tr > th.warning, +.note-editor .table > tbody > tr > th.warning, +.note-editor .table > tfoot > tr > th.warning, +.note-editor .table > thead > tr.warning > td, +.note-editor .table > tbody > tr.warning > td, +.note-editor .table > tfoot > tr.warning > td, +.note-editor .table > thead > tr.warning > th, +.note-editor .table > tbody > tr.warning > th, +.note-editor .table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #faebcc; +} +.note-editor .table-hover > tbody > tr > td.warning:hover, +.note-editor .table-hover > tbody > tr > th.warning:hover, +.note-editor .table-hover > tbody > tr.warning:hover > td, +.note-editor .table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; + border-color: #f7e1b5; +} +@media (max-width: 767px) { + .note-editor .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: scroll; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dddddd; + -webkit-overflow-scrolling: touch; + } + .note-editor .table-responsive > .table { + margin-bottom: 0; + } + .note-editor .table-responsive > .table > thead > tr > th, + .note-editor .table-responsive > .table > tbody > tr > th, + .note-editor .table-responsive > .table > tfoot > tr > th, + .note-editor .table-responsive > .table > thead > tr > td, + .note-editor .table-responsive > .table > tbody > tr > td, + .note-editor .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .note-editor .table-responsive > .table-bordered { + border: 0; + } + .note-editor .table-responsive > .table-bordered > thead > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > thead > tr > td:first-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > td:first-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .note-editor .table-responsive > .table-bordered > thead > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > thead > tr > td:last-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > td:last-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .note-editor .table-responsive > .table-bordered > tbody > tr:last-child > th, + .note-editor .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .note-editor .table-responsive > .table-bordered > tbody > tr:last-child > td, + .note-editor .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +.note-editor fieldset { + padding: 0; + margin: 0; + border: 0; +} +.note-editor legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +.note-editor label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} +.note-editor input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor input[type="radio"], +.note-editor input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +.note-editor input[type="file"] { + display: block; +} +.note-editor select[multiple], +.note-editor select[size] { + height: auto; +} +.note-editor select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} +.note-editor input[type="file"]:focus, +.note-editor input[type="radio"]:focus, +.note-editor input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor input[type="number"]::-webkit-outer-spin-button, +.note-editor input[type="number"]::-webkit-inner-spin-button { + height: auto; +} +.note-editor output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; +} +.note-editor .form-control:-moz-placeholder { + color: #999999; +} +.note-editor .form-control::-moz-placeholder { + color: #999999; +} +.note-editor .form-control:-ms-input-placeholder { + color: #999999; +} +.note-editor .form-control::-webkit-input-placeholder { + color: #999999; +} +.note-editor .form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.note-editor .form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.note-editor .form-control[disabled], +.note-editor .form-control[readonly], +fieldset[disabled] .note-editor .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} +textarea.note-editor .form-control { + height: auto; +} +.note-editor .form-group { + margin-bottom: 15px; +} +.note-editor .radio, +.note-editor .checkbox { + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; +} +.note-editor .radio label, +.note-editor .checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.note-editor .radio input[type="radio"], +.note-editor .radio-inline input[type="radio"], +.note-editor .checkbox input[type="checkbox"], +.note-editor .checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.note-editor .radio + .radio, +.note-editor .checkbox + .checkbox { + margin-top: -5px; +} +.note-editor .radio-inline, +.note-editor .checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.note-editor .radio-inline + .radio-inline, +.note-editor .checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +.note-editor input[type="radio"][disabled], +.note-editor input[type="checkbox"][disabled], +.note-editor .radio[disabled], +.note-editor .radio-inline[disabled], +.note-editor .checkbox[disabled], +.note-editor .checkbox-inline[disabled], +fieldset[disabled] .note-editor input[type="radio"], +fieldset[disabled] .note-editor input[type="checkbox"], +fieldset[disabled] .note-editor .radio, +fieldset[disabled] .note-editor .radio-inline, +fieldset[disabled] .note-editor .checkbox, +fieldset[disabled] .note-editor .checkbox-inline { + cursor: not-allowed; +} +.note-editor .input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.note-editor .input-sm { + height: 30px; + line-height: 30px; +} +textarea.note-editor .input-sm { + height: auto; +} +.note-editor .input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.note-editor .input-lg { + height: 45px; + line-height: 45px; +} +textarea.note-editor .input-lg { + height: auto; +} +.note-editor .has-warning .help-block, +.note-editor .has-warning .control-label { + color: #c09853; +} +.note-editor .has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} +.note-editor .has-warning .input-group-addon { + color: #c09853; + border-color: #c09853; + background-color: #fcf8e3; +} +.note-editor .has-error .help-block, +.note-editor .has-error .control-label { + color: #b94a48; +} +.note-editor .has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} +.note-editor .has-error .input-group-addon { + color: #b94a48; + border-color: #b94a48; + background-color: #f2dede; +} +.note-editor .has-success .help-block, +.note-editor .has-success .control-label { + color: #468847; +} +.note-editor .has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} +.note-editor .has-success .input-group-addon { + color: #468847; + border-color: #468847; + background-color: #dff0d8; +} +.note-editor .form-control-static { + margin-bottom: 0; +} +.note-editor .help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .note-editor .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .note-editor .form-inline .form-control { + display: inline-block; + } + .note-editor .form-inline .radio, + .note-editor .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .note-editor .form-inline .radio input[type="radio"], + .note-editor .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +.note-editor .form-horizontal .control-label, +.note-editor .form-horizontal .radio, +.note-editor .form-horizontal .checkbox, +.note-editor .form-horizontal .radio-inline, +.note-editor .form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.note-editor .form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +.note-editor .form-horizontal .form-group:before, +.note-editor .form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .form-horizontal .form-group:after { + clear: both; +} +.note-editor .form-horizontal .form-group:before, +.note-editor .form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .form-horizontal .form-group:after { + clear: both; +} +.note-editor .form-horizontal .form-control-static { + padding-top: 7px; +} +@media (min-width: 768px) { + .note-editor .form-horizontal .control-label { + text-align: right; + } +} +.note-editor .btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} +.note-editor .btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor .btn:hover, +.note-editor .btn:focus { + color: #333333; + text-decoration: none; +} +.note-editor .btn:active, +.note-editor .btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.note-editor .btn.disabled, +.note-editor .btn[disabled], +fieldset[disabled] .note-editor .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.note-editor .btn-default:hover, +.note-editor .btn-default:focus, +.note-editor .btn-default:active, +.note-editor .btn-default.active, +.open .dropdown-toggle.note-editor .btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} +.note-editor .btn-default:active, +.note-editor .btn-default.active, +.open .dropdown-toggle.note-editor .btn-default { + background-image: none; +} +.note-editor .btn-default.disabled, +.note-editor .btn-default[disabled], +fieldset[disabled] .note-editor .btn-default, +.note-editor .btn-default.disabled:hover, +.note-editor .btn-default[disabled]:hover, +fieldset[disabled] .note-editor .btn-default:hover, +.note-editor .btn-default.disabled:focus, +.note-editor .btn-default[disabled]:focus, +fieldset[disabled] .note-editor .btn-default:focus, +.note-editor .btn-default.disabled:active, +.note-editor .btn-default[disabled]:active, +fieldset[disabled] .note-editor .btn-default:active, +.note-editor .btn-default.disabled.active, +.note-editor .btn-default[disabled].active, +fieldset[disabled] .note-editor .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.note-editor .btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} +.note-editor .btn-primary:hover, +.note-editor .btn-primary:focus, +.note-editor .btn-primary:active, +.note-editor .btn-primary.active, +.open .dropdown-toggle.note-editor .btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.note-editor .btn-primary:active, +.note-editor .btn-primary.active, +.open .dropdown-toggle.note-editor .btn-primary { + background-image: none; +} +.note-editor .btn-primary.disabled, +.note-editor .btn-primary[disabled], +fieldset[disabled] .note-editor .btn-primary, +.note-editor .btn-primary.disabled:hover, +.note-editor .btn-primary[disabled]:hover, +fieldset[disabled] .note-editor .btn-primary:hover, +.note-editor .btn-primary.disabled:focus, +.note-editor .btn-primary[disabled]:focus, +fieldset[disabled] .note-editor .btn-primary:focus, +.note-editor .btn-primary.disabled:active, +.note-editor .btn-primary[disabled]:active, +fieldset[disabled] .note-editor .btn-primary:active, +.note-editor .btn-primary.disabled.active, +.note-editor .btn-primary[disabled].active, +fieldset[disabled] .note-editor .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} +.note-editor .btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.note-editor .btn-warning:hover, +.note-editor .btn-warning:focus, +.note-editor .btn-warning:active, +.note-editor .btn-warning.active, +.open .dropdown-toggle.note-editor .btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} +.note-editor .btn-warning:active, +.note-editor .btn-warning.active, +.open .dropdown-toggle.note-editor .btn-warning { + background-image: none; +} +.note-editor .btn-warning.disabled, +.note-editor .btn-warning[disabled], +fieldset[disabled] .note-editor .btn-warning, +.note-editor .btn-warning.disabled:hover, +.note-editor .btn-warning[disabled]:hover, +fieldset[disabled] .note-editor .btn-warning:hover, +.note-editor .btn-warning.disabled:focus, +.note-editor .btn-warning[disabled]:focus, +fieldset[disabled] .note-editor .btn-warning:focus, +.note-editor .btn-warning.disabled:active, +.note-editor .btn-warning[disabled]:active, +fieldset[disabled] .note-editor .btn-warning:active, +.note-editor .btn-warning.disabled.active, +.note-editor .btn-warning[disabled].active, +fieldset[disabled] .note-editor .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.note-editor .btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.note-editor .btn-danger:hover, +.note-editor .btn-danger:focus, +.note-editor .btn-danger:active, +.note-editor .btn-danger.active, +.open .dropdown-toggle.note-editor .btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} +.note-editor .btn-danger:active, +.note-editor .btn-danger.active, +.open .dropdown-toggle.note-editor .btn-danger { + background-image: none; +} +.note-editor .btn-danger.disabled, +.note-editor .btn-danger[disabled], +fieldset[disabled] .note-editor .btn-danger, +.note-editor .btn-danger.disabled:hover, +.note-editor .btn-danger[disabled]:hover, +fieldset[disabled] .note-editor .btn-danger:hover, +.note-editor .btn-danger.disabled:focus, +.note-editor .btn-danger[disabled]:focus, +fieldset[disabled] .note-editor .btn-danger:focus, +.note-editor .btn-danger.disabled:active, +.note-editor .btn-danger[disabled]:active, +fieldset[disabled] .note-editor .btn-danger:active, +.note-editor .btn-danger.disabled.active, +.note-editor .btn-danger[disabled].active, +fieldset[disabled] .note-editor .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.note-editor .btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.note-editor .btn-success:hover, +.note-editor .btn-success:focus, +.note-editor .btn-success:active, +.note-editor .btn-success.active, +.open .dropdown-toggle.note-editor .btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} +.note-editor .btn-success:active, +.note-editor .btn-success.active, +.open .dropdown-toggle.note-editor .btn-success { + background-image: none; +} +.note-editor .btn-success.disabled, +.note-editor .btn-success[disabled], +fieldset[disabled] .note-editor .btn-success, +.note-editor .btn-success.disabled:hover, +.note-editor .btn-success[disabled]:hover, +fieldset[disabled] .note-editor .btn-success:hover, +.note-editor .btn-success.disabled:focus, +.note-editor .btn-success[disabled]:focus, +fieldset[disabled] .note-editor .btn-success:focus, +.note-editor .btn-success.disabled:active, +.note-editor .btn-success[disabled]:active, +fieldset[disabled] .note-editor .btn-success:active, +.note-editor .btn-success.disabled.active, +.note-editor .btn-success[disabled].active, +fieldset[disabled] .note-editor .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.note-editor .btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} +.note-editor .btn-info:hover, +.note-editor .btn-info:focus, +.note-editor .btn-info:active, +.note-editor .btn-info.active, +.open .dropdown-toggle.note-editor .btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} +.note-editor .btn-info:active, +.note-editor .btn-info.active, +.open .dropdown-toggle.note-editor .btn-info { + background-image: none; +} +.note-editor .btn-info.disabled, +.note-editor .btn-info[disabled], +fieldset[disabled] .note-editor .btn-info, +.note-editor .btn-info.disabled:hover, +.note-editor .btn-info[disabled]:hover, +fieldset[disabled] .note-editor .btn-info:hover, +.note-editor .btn-info.disabled:focus, +.note-editor .btn-info[disabled]:focus, +fieldset[disabled] .note-editor .btn-info:focus, +.note-editor .btn-info.disabled:active, +.note-editor .btn-info[disabled]:active, +fieldset[disabled] .note-editor .btn-info:active, +.note-editor .btn-info.disabled.active, +.note-editor .btn-info[disabled].active, +fieldset[disabled] .note-editor .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.note-editor .btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0; +} +.note-editor .btn-link, +.note-editor .btn-link:active, +.note-editor .btn-link[disabled], +fieldset[disabled] .note-editor .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-link, +.note-editor .btn-link:hover, +.note-editor .btn-link:focus, +.note-editor .btn-link:active { + border-color: transparent; +} +.note-editor .btn-link:hover, +.note-editor .btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} +.note-editor .btn-link[disabled]:hover, +fieldset[disabled] .note-editor .btn-link:hover, +.note-editor .btn-link[disabled]:focus, +fieldset[disabled] .note-editor .btn-link:focus { + color: #999999; + text-decoration: none; +} +.note-editor .btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.note-editor .btn-sm, +.note-editor .btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.note-editor .btn-xs { + padding: 1px 5px; +} +.note-editor .btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.note-editor .btn-block + .btn-block { + margin-top: 5px; +} +.note-editor input[type="submit"].btn-block, +.note-editor input[type="reset"].btn-block, +.note-editor input[type="button"].btn-block { + width: 100%; +} +.note-editor .fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.note-editor .fade.in { + opacity: 1; +} +.note-editor .collapse { + display: none; +} +.note-editor .collapse.in { + display: block; +} +.note-editor .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.note-editor .glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; +} +.note-editor .glyphicon:empty { + width: 1em; +} +.note-editor .glyphicon-asterisk:before { + content: "\2a"; +} +.note-editor .glyphicon-plus:before { + content: "\2b"; +} +.note-editor .glyphicon-euro:before { + content: "\20ac"; +} +.note-editor .glyphicon-minus:before { + content: "\2212"; +} +.note-editor .glyphicon-cloud:before { + content: "\2601"; +} +.note-editor .glyphicon-envelope:before { + content: "\2709"; +} +.note-editor .glyphicon-pencil:before { + content: "\270f"; +} +.note-editor .glyphicon-glass:before { + content: "\e001"; +} +.note-editor .glyphicon-music:before { + content: "\e002"; +} +.note-editor .glyphicon-search:before { + content: "\e003"; +} +.note-editor .glyphicon-heart:before { + content: "\e005"; +} +.note-editor .glyphicon-star:before { + content: "\e006"; +} +.note-editor .glyphicon-star-empty:before { + content: "\e007"; +} +.note-editor .glyphicon-user:before { + content: "\e008"; +} +.note-editor .glyphicon-film:before { + content: "\e009"; +} +.note-editor .glyphicon-th-large:before { + content: "\e010"; +} +.note-editor .glyphicon-th:before { + content: "\e011"; +} +.note-editor .glyphicon-th-list:before { + content: "\e012"; +} +.note-editor .glyphicon-ok:before { + content: "\e013"; +} +.note-editor .glyphicon-remove:before { + content: "\e014"; +} +.note-editor .glyphicon-zoom-in:before { + content: "\e015"; +} +.note-editor .glyphicon-zoom-out:before { + content: "\e016"; +} +.note-editor .glyphicon-off:before { + content: "\e017"; +} +.note-editor .glyphicon-signal:before { + content: "\e018"; +} +.note-editor .glyphicon-cog:before { + content: "\e019"; +} +.note-editor .glyphicon-trash:before { + content: "\e020"; +} +.note-editor .glyphicon-home:before { + content: "\e021"; +} +.note-editor .glyphicon-file:before { + content: "\e022"; +} +.note-editor .glyphicon-time:before { + content: "\e023"; +} +.note-editor .glyphicon-road:before { + content: "\e024"; +} +.note-editor .glyphicon-download-alt:before { + content: "\e025"; +} +.note-editor .glyphicon-download:before { + content: "\e026"; +} +.note-editor .glyphicon-upload:before { + content: "\e027"; +} +.note-editor .glyphicon-inbox:before { + content: "\e028"; +} +.note-editor .glyphicon-play-circle:before { + content: "\e029"; +} +.note-editor .glyphicon-repeat:before { + content: "\e030"; +} +.note-editor .glyphicon-refresh:before { + content: "\e031"; +} +.note-editor .glyphicon-list-alt:before { + content: "\e032"; +} +.note-editor .glyphicon-lock:before { + content: "\e033"; +} +.note-editor .glyphicon-flag:before { + content: "\e034"; +} +.note-editor .glyphicon-headphones:before { + content: "\e035"; +} +.note-editor .glyphicon-volume-off:before { + content: "\e036"; +} +.note-editor .glyphicon-volume-down:before { + content: "\e037"; +} +.note-editor .glyphicon-volume-up:before { + content: "\e038"; +} +.note-editor .glyphicon-qrcode:before { + content: "\e039"; +} +.note-editor .glyphicon-barcode:before { + content: "\e040"; +} +.note-editor .glyphicon-tag:before { + content: "\e041"; +} +.note-editor .glyphicon-tags:before { + content: "\e042"; +} +.note-editor .glyphicon-book:before { + content: "\e043"; +} +.note-editor .glyphicon-bookmark:before { + content: "\e044"; +} +.note-editor .glyphicon-print:before { + content: "\e045"; +} +.note-editor .glyphicon-camera:before { + content: "\e046"; +} +.note-editor .glyphicon-font:before { + content: "\e047"; +} +.note-editor .glyphicon-bold:before { + content: "\e048"; +} +.note-editor .glyphicon-italic:before { + content: "\e049"; +} +.note-editor .glyphicon-text-height:before { + content: "\e050"; +} +.note-editor .glyphicon-text-width:before { + content: "\e051"; +} +.note-editor .glyphicon-align-left:before { + content: "\e052"; +} +.note-editor .glyphicon-align-center:before { + content: "\e053"; +} +.note-editor .glyphicon-align-right:before { + content: "\e054"; +} +.note-editor .glyphicon-align-justify:before { + content: "\e055"; +} +.note-editor .glyphicon-list:before { + content: "\e056"; +} +.note-editor .glyphicon-indent-left:before { + content: "\e057"; +} +.note-editor .glyphicon-indent-right:before { + content: "\e058"; +} +.note-editor .glyphicon-facetime-video:before { + content: "\e059"; +} +.note-editor .glyphicon-picture:before { + content: "\e060"; +} +.note-editor .glyphicon-map-marker:before { + content: "\e062"; +} +.note-editor .glyphicon-adjust:before { + content: "\e063"; +} +.note-editor .glyphicon-tint:before { + content: "\e064"; +} +.note-editor .glyphicon-edit:before { + content: "\e065"; +} +.note-editor .glyphicon-share:before { + content: "\e066"; +} +.note-editor .glyphicon-check:before { + content: "\e067"; +} +.note-editor .glyphicon-move:before { + content: "\e068"; +} +.note-editor .glyphicon-step-backward:before { + content: "\e069"; +} +.note-editor .glyphicon-fast-backward:before { + content: "\e070"; +} +.note-editor .glyphicon-backward:before { + content: "\e071"; +} +.note-editor .glyphicon-play:before { + content: "\e072"; +} +.note-editor .glyphicon-pause:before { + content: "\e073"; +} +.note-editor .glyphicon-stop:before { + content: "\e074"; +} +.note-editor .glyphicon-forward:before { + content: "\e075"; +} +.note-editor .glyphicon-fast-forward:before { + content: "\e076"; +} +.note-editor .glyphicon-step-forward:before { + content: "\e077"; +} +.note-editor .glyphicon-eject:before { + content: "\e078"; +} +.note-editor .glyphicon-chevron-left:before { + content: "\e079"; +} +.note-editor .glyphicon-chevron-right:before { + content: "\e080"; +} +.note-editor .glyphicon-plus-sign:before { + content: "\e081"; +} +.note-editor .glyphicon-minus-sign:before { + content: "\e082"; +} +.note-editor .glyphicon-remove-sign:before { + content: "\e083"; +} +.note-editor .glyphicon-ok-sign:before { + content: "\e084"; +} +.note-editor .glyphicon-question-sign:before { + content: "\e085"; +} +.note-editor .glyphicon-info-sign:before { + content: "\e086"; +} +.note-editor .glyphicon-screenshot:before { + content: "\e087"; +} +.note-editor .glyphicon-remove-circle:before { + content: "\e088"; +} +.note-editor .glyphicon-ok-circle:before { + content: "\e089"; +} +.note-editor .glyphicon-ban-circle:before { + content: "\e090"; +} +.note-editor .glyphicon-arrow-left:before { + content: "\e091"; +} +.note-editor .glyphicon-arrow-right:before { + content: "\e092"; +} +.note-editor .glyphicon-arrow-up:before { + content: "\e093"; +} +.note-editor .glyphicon-arrow-down:before { + content: "\e094"; +} +.note-editor .glyphicon-share-alt:before { + content: "\e095"; +} +.note-editor .glyphicon-resize-full:before { + content: "\e096"; +} +.note-editor .glyphicon-resize-small:before { + content: "\e097"; +} +.note-editor .glyphicon-exclamation-sign:before { + content: "\e101"; +} +.note-editor .glyphicon-gift:before { + content: "\e102"; +} +.note-editor .glyphicon-leaf:before { + content: "\e103"; +} +.note-editor .glyphicon-fire:before { + content: "\e104"; +} +.note-editor .glyphicon-eye-open:before { + content: "\e105"; +} +.note-editor .glyphicon-eye-close:before { + content: "\e106"; +} +.note-editor .glyphicon-warning-sign:before { + content: "\e107"; +} +.note-editor .glyphicon-plane:before { + content: "\e108"; +} +.note-editor .glyphicon-calendar:before { + content: "\e109"; +} +.note-editor .glyphicon-random:before { + content: "\e110"; +} +.note-editor .glyphicon-comment:before { + content: "\e111"; +} +.note-editor .glyphicon-magnet:before { + content: "\e112"; +} +.note-editor .glyphicon-chevron-up:before { + content: "\e113"; +} +.note-editor .glyphicon-chevron-down:before { + content: "\e114"; +} +.note-editor .glyphicon-retweet:before { + content: "\e115"; +} +.note-editor .glyphicon-shopping-cart:before { + content: "\e116"; +} +.note-editor .glyphicon-folder-close:before { + content: "\e117"; +} +.note-editor .glyphicon-folder-open:before { + content: "\e118"; +} +.note-editor .glyphicon-resize-vertical:before { + content: "\e119"; +} +.note-editor .glyphicon-resize-horizontal:before { + content: "\e120"; +} +.note-editor .glyphicon-hdd:before { + content: "\e121"; +} +.note-editor .glyphicon-bullhorn:before { + content: "\e122"; +} +.note-editor .glyphicon-bell:before { + content: "\e123"; +} +.note-editor .glyphicon-certificate:before { + content: "\e124"; +} +.note-editor .glyphicon-thumbs-up:before { + content: "\e125"; +} +.note-editor .glyphicon-thumbs-down:before { + content: "\e126"; +} +.note-editor .glyphicon-hand-right:before { + content: "\e127"; +} +.note-editor .glyphicon-hand-left:before { + content: "\e128"; +} +.note-editor .glyphicon-hand-up:before { + content: "\e129"; +} +.note-editor .glyphicon-hand-down:before { + content: "\e130"; +} +.note-editor .glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.note-editor .glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.note-editor .glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.note-editor .glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.note-editor .glyphicon-globe:before { + content: "\e135"; +} +.note-editor .glyphicon-wrench:before { + content: "\e136"; +} +.note-editor .glyphicon-tasks:before { + content: "\e137"; +} +.note-editor .glyphicon-filter:before { + content: "\e138"; +} +.note-editor .glyphicon-briefcase:before { + content: "\e139"; +} +.note-editor .glyphicon-fullscreen:before { + content: "\e140"; +} +.note-editor .glyphicon-dashboard:before { + content: "\e141"; +} +.note-editor .glyphicon-paperclip:before { + content: "\e142"; +} +.note-editor .glyphicon-heart-empty:before { + content: "\e143"; +} +.note-editor .glyphicon-link:before { + content: "\e144"; +} +.note-editor .glyphicon-phone:before { + content: "\e145"; +} +.note-editor .glyphicon-pushpin:before { + content: "\e146"; +} +.note-editor .glyphicon-usd:before { + content: "\e148"; +} +.note-editor .glyphicon-gbp:before { + content: "\e149"; +} +.note-editor .glyphicon-sort:before { + content: "\e150"; +} +.note-editor .glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.note-editor .glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.note-editor .glyphicon-sort-by-order:before { + content: "\e153"; +} +.note-editor .glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.note-editor .glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.note-editor .glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.note-editor .glyphicon-unchecked:before { + content: "\e157"; +} +.note-editor .glyphicon-expand:before { + content: "\e158"; +} +.note-editor .glyphicon-collapse-down:before { + content: "\e159"; +} +.note-editor .glyphicon-collapse-up:before { + content: "\e160"; +} +.note-editor .glyphicon-log-in:before { + content: "\e161"; +} +.note-editor .glyphicon-flash:before { + content: "\e162"; +} +.note-editor .glyphicon-log-out:before { + content: "\e163"; +} +.note-editor .glyphicon-new-window:before { + content: "\e164"; +} +.note-editor .glyphicon-record:before { + content: "\e165"; +} +.note-editor .glyphicon-save:before { + content: "\e166"; +} +.note-editor .glyphicon-open:before { + content: "\e167"; +} +.note-editor .glyphicon-saved:before { + content: "\e168"; +} +.note-editor .glyphicon-import:before { + content: "\e169"; +} +.note-editor .glyphicon-export:before { + content: "\e170"; +} +.note-editor .glyphicon-send:before { + content: "\e171"; +} +.note-editor .glyphicon-floppy-disk:before { + content: "\e172"; +} +.note-editor .glyphicon-floppy-saved:before { + content: "\e173"; +} +.note-editor .glyphicon-floppy-remove:before { + content: "\e174"; +} +.note-editor .glyphicon-floppy-save:before { + content: "\e175"; +} +.note-editor .glyphicon-floppy-open:before { + content: "\e176"; +} +.note-editor .glyphicon-credit-card:before { + content: "\e177"; +} +.note-editor .glyphicon-transfer:before { + content: "\e178"; +} +.note-editor .glyphicon-cutlery:before { + content: "\e179"; +} +.note-editor .glyphicon-header:before { + content: "\e180"; +} +.note-editor .glyphicon-compressed:before { + content: "\e181"; +} +.note-editor .glyphicon-earphone:before { + content: "\e182"; +} +.note-editor .glyphicon-phone-alt:before { + content: "\e183"; +} +.note-editor .glyphicon-tower:before { + content: "\e184"; +} +.note-editor .glyphicon-stats:before { + content: "\e185"; +} +.note-editor .glyphicon-sd-video:before { + content: "\e186"; +} +.note-editor .glyphicon-hd-video:before { + content: "\e187"; +} +.note-editor .glyphicon-subtitles:before { + content: "\e188"; +} +.note-editor .glyphicon-sound-stereo:before { + content: "\e189"; +} +.note-editor .glyphicon-sound-dolby:before { + content: "\e190"; +} +.note-editor .glyphicon-sound-5-1:before { + content: "\e191"; +} +.note-editor .glyphicon-sound-6-1:before { + content: "\e192"; +} +.note-editor .glyphicon-sound-7-1:before { + content: "\e193"; +} +.note-editor .glyphicon-copyright-mark:before { + content: "\e194"; +} +.note-editor .glyphicon-registration-mark:before { + content: "\e195"; +} +.note-editor .glyphicon-cloud-download:before { + content: "\e197"; +} +.note-editor .glyphicon-cloud-upload:before { + content: "\e198"; +} +.note-editor .glyphicon-tree-conifer:before { + content: "\e199"; +} +.note-editor .glyphicon-tree-deciduous:before { + content: "\e200"; +} +.note-editor .caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; +} +.note-editor .dropdown { + position: relative; +} +.note-editor .dropdown-toggle:focus { + outline: 0; +} +.note-editor .dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.note-editor .dropdown-menu.pull-right { + right: 0; + left: auto; +} +.note-editor .dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.note-editor .dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} +.note-editor .dropdown-menu > li > a:hover, +.note-editor .dropdown-menu > li > a:focus { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} +.note-editor .dropdown-menu > .active > a, +.note-editor .dropdown-menu > .active > a:hover, +.note-editor .dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #428bca; +} +.note-editor .dropdown-menu > .disabled > a, +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + color: #999999; +} +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.note-editor .open > .dropdown-menu { + display: block; +} +.note-editor .open > a { + outline: 0; +} +.note-editor .dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} +.note-editor .dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.note-editor .pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.note-editor .dropup .caret, +.note-editor .navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} +.note-editor .dropup .dropdown-menu, +.note-editor .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} +.btn-default .note-editor .caret { + border-top-color: #333333; +} +.btn-primary .note-editor .caret, +.btn-success .note-editor .caret, +.btn-warning .note-editor .caret, +.btn-danger .note-editor .caret, +.btn-info .note-editor .caret { + border-top-color: #fff; +} +.note-editor .dropup .btn-default .caret { + border-bottom-color: #333333; +} +.note-editor .dropup .btn-primary .caret, +.note-editor .dropup .btn-success .caret, +.note-editor .dropup .btn-warning .caret, +.note-editor .dropup .btn-danger .caret, +.note-editor .dropup .btn-info .caret { + border-bottom-color: #fff; +} +.note-editor .btn-group, +.note-editor .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.note-editor .btn-group > .btn, +.note-editor .btn-group-vertical > .btn { + position: relative; + float: left; +} +.note-editor .btn-group > .btn:hover, +.note-editor .btn-group-vertical > .btn:hover, +.note-editor .btn-group > .btn:focus, +.note-editor .btn-group-vertical > .btn:focus, +.note-editor .btn-group > .btn:active, +.note-editor .btn-group-vertical > .btn:active, +.note-editor .btn-group > .btn.active, +.note-editor .btn-group-vertical > .btn.active { + z-index: 2; +} +.note-editor .btn-group > .btn:focus, +.note-editor .btn-group-vertical > .btn:focus { + outline: none; +} +.note-editor .btn-group .btn + .btn, +.note-editor .btn-group .btn + .btn-group, +.note-editor .btn-group .btn-group + .btn, +.note-editor .btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.note-editor .btn-toolbar:before, +.note-editor .btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-toolbar:after { + clear: both; +} +.note-editor .btn-toolbar:before, +.note-editor .btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-toolbar:after { + clear: both; +} +.note-editor .btn-toolbar .btn-group { + float: left; +} +.note-editor .btn-toolbar > .btn + .btn, +.note-editor .btn-toolbar > .btn-group + .btn, +.note-editor .btn-toolbar > .btn + .btn-group, +.note-editor .btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} +.note-editor .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.note-editor .btn-group > .btn:first-child { + margin-left: 0; +} +.note-editor .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .btn-group > .btn:last-child:not(:first-child), +.note-editor .btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group > .btn-group { + float: left; +} +.note-editor .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.note-editor .btn-group > .btn-group:first-child > .btn:last-child, +.note-editor .btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group .dropdown-toggle:active, +.note-editor .btn-group.open .dropdown-toggle { + outline: 0; +} +.note-editor .btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px; +} +.note-editor .btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.note-editor .btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.note-editor .btn-group > .btn + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; +} +.note-editor .btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.note-editor .btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.note-editor .btn .caret { + margin-left: 0; +} +.note-editor .btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.note-editor .dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.note-editor .btn-group-vertical > .btn, +.note-editor .btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.note-editor .btn-group-vertical > .btn-group:before, +.note-editor .btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-group-vertical > .btn-group:after { + clear: both; +} +.note-editor .btn-group-vertical > .btn-group:before, +.note-editor .btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-group-vertical > .btn-group:after { + clear: both; +} +.note-editor .btn-group-vertical > .btn-group > .btn { + float: none; +} +.note-editor .btn-group-vertical > .btn + .btn, +.note-editor .btn-group-vertical > .btn + .btn-group, +.note-editor .btn-group-vertical > .btn-group + .btn, +.note-editor .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.note-editor .btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.note-editor .btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:first-child > .btn:last-child, +.note-editor .btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.note-editor .btn-group-justified .btn { + float: none; + display: table-cell; + width: 1%; +} +.note-editor [data-toggle="buttons"] > .btn > input[type="radio"], +.note-editor [data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} +.note-editor .input-group { + position: relative; + display: table; + border-collapse: separate; +} +.note-editor .input-group.col { + float: none; + padding-left: 0; + padding-right: 0; +} +.note-editor .input-group .form-control { + width: 100%; + margin-bottom: 0; +} +.note-editor .input-group-lg > .form-control, +.note-editor .input-group-lg > .input-group-addon, +.note-editor .input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.note-editor .input-group-lg > .form-control, +select.note-editor .input-group-lg > .input-group-addon, +select.note-editor .input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.note-editor .input-group-lg > .form-control, +textarea.note-editor .input-group-lg > .input-group-addon, +textarea.note-editor .input-group-lg > .input-group-btn > .btn { + height: auto; +} +.note-editor .input-group-sm > .form-control, +.note-editor .input-group-sm > .input-group-addon, +.note-editor .input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.note-editor .input-group-sm > .form-control, +select.note-editor .input-group-sm > .input-group-addon, +select.note-editor .input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.note-editor .input-group-sm > .form-control, +textarea.note-editor .input-group-sm > .input-group-addon, +textarea.note-editor .input-group-sm > .input-group-btn > .btn { + height: auto; +} +.note-editor .input-group-addon, +.note-editor .input-group-btn, +.note-editor .input-group .form-control { + display: table-cell; +} +.note-editor .input-group-addon:not(:first-child):not(:last-child), +.note-editor .input-group-btn:not(:first-child):not(:last-child), +.note-editor .input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.note-editor .input-group-addon, +.note-editor .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.note-editor .input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} +.note-editor .input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.note-editor .input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.note-editor .input-group-addon input[type="radio"], +.note-editor .input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.note-editor .input-group .form-control:first-child, +.note-editor .input-group-addon:first-child, +.note-editor .input-group-btn:first-child > .btn, +.note-editor .input-group-btn:first-child > .dropdown-toggle, +.note-editor .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .input-group-addon:first-child { + border-right: 0; +} +.note-editor .input-group .form-control:last-child, +.note-editor .input-group-addon:last-child, +.note-editor .input-group-btn:last-child > .btn, +.note-editor .input-group-btn:last-child > .dropdown-toggle, +.note-editor .input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .input-group-addon:last-child { + border-left: 0; +} +.note-editor .input-group-btn { + position: relative; + white-space: nowrap; +} +.note-editor .input-group-btn:first-child > .btn { + margin-right: -1px; +} +.note-editor .input-group-btn:last-child > .btn { + margin-left: -1px; +} +.note-editor .input-group-btn > .btn { + position: relative; +} +.note-editor .input-group-btn > .btn + .btn { + margin-left: -4px; +} +.note-editor .input-group-btn > .btn:hover, +.note-editor .input-group-btn > .btn:active { + z-index: 2; +} +.note-editor .nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.note-editor .nav:before, +.note-editor .nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .nav:after { + clear: both; +} +.note-editor .nav:before, +.note-editor .nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .nav:after { + clear: both; +} +.note-editor .nav > li { + position: relative; + display: block; +} +.note-editor .nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.note-editor .nav > li > a:hover, +.note-editor .nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.note-editor .nav > li.disabled > a { + color: #999999; +} +.note-editor .nav > li.disabled > a:hover, +.note-editor .nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.note-editor .nav .open > a, +.note-editor .nav .open > a:hover, +.note-editor .nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} +.note-editor .nav .open > a .caret, +.note-editor .nav .open > a:hover .caret, +.note-editor .nav .open > a:focus .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} +.note-editor .nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.note-editor .nav > li > a > img { + max-width: none; +} +.note-editor .nav-tabs { + border-bottom: 1px solid #dddddd; +} +.note-editor .nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.note-editor .nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.note-editor .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.note-editor .nav-tabs > li.active > a, +.note-editor .nav-tabs > li.active > a:hover, +.note-editor .nav-tabs > li.active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.note-editor .nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.note-editor .nav-tabs.nav-justified > li { + float: none; +} +.note-editor .nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +@media (min-width: 768px) { + .note-editor .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .note-editor .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.note-editor .nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.note-editor .nav-tabs.nav-justified > .active > a, +.note-editor .nav-tabs.nav-justified > .active > a:hover, +.note-editor .nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .note-editor .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .note-editor .nav-tabs.nav-justified > .active > a, + .note-editor .nav-tabs.nav-justified > .active > a:hover, + .note-editor .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.note-editor .nav-pills > li { + float: left; +} +.note-editor .nav-pills > li > a { + border-radius: 4px; +} +.note-editor .nav-pills > li + li { + margin-left: 2px; +} +.note-editor .nav-pills > li.active > a, +.note-editor .nav-pills > li.active > a:hover, +.note-editor .nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} +.note-editor .nav-pills > li.active > a .caret, +.note-editor .nav-pills > li.active > a:hover .caret, +.note-editor .nav-pills > li.active > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .nav-stacked > li { + float: none; +} +.note-editor .nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.note-editor .nav-justified { + width: 100%; +} +.note-editor .nav-justified > li { + float: none; +} +.note-editor .nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +@media (min-width: 768px) { + .note-editor .nav-justified > li { + display: table-cell; + width: 1%; + } + .note-editor .nav-justified > li > a { + margin-bottom: 0; + } +} +.note-editor .nav-tabs-justified { + border-bottom: 0; +} +.note-editor .nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.note-editor .nav-tabs-justified > .active > a, +.note-editor .nav-tabs-justified > .active > a:hover, +.note-editor .nav-tabs-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .note-editor .nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .note-editor .nav-tabs-justified > .active > a, + .note-editor .nav-tabs-justified > .active > a:hover, + .note-editor .nav-tabs-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.note-editor .tab-content > .tab-pane { + display: none; +} +.note-editor .tab-content > .active { + display: block; +} +.note-editor .nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} +.note-editor .nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} +.note-editor .nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +.note-editor .navbar:before, +.note-editor .navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar:after { + clear: both; +} +.note-editor .navbar:before, +.note-editor .navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar:after { + clear: both; +} +@media (min-width: 768px) { + .note-editor .navbar { + border-radius: 4px; + } +} +.note-editor .navbar-header:before, +.note-editor .navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-header:after { + clear: both; +} +.note-editor .navbar-header:before, +.note-editor .navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-header:after { + clear: both; +} +@media (min-width: 768px) { + .note-editor .navbar-header { + float: left; + } +} +.note-editor .navbar-collapse { + max-height: 340px; + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.note-editor .navbar-collapse:before, +.note-editor .navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-collapse:after { + clear: both; +} +.note-editor .navbar-collapse:before, +.note-editor .navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-collapse:after { + clear: both; +} +.note-editor .navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .note-editor .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .note-editor .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .note-editor .navbar-collapse.in { + overflow-y: visible; + } + .note-editor .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .note-editor .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .note-editor .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} +.note-editor .container > .navbar-header, +.note-editor .container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .note-editor .container > .navbar-header, + .note-editor .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.note-editor .navbar-static-top { + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-static-top { + border-radius: 0; + } +} +.note-editor .navbar-fixed-top, +.note-editor .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-fixed-top, + .note-editor .navbar-fixed-bottom { + border-radius: 0; + } +} +.note-editor .navbar-fixed-top { + z-index: 1030; + top: 0; +} +.note-editor .navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} +.note-editor .navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.note-editor .navbar-brand:hover, +.note-editor .navbar-brand:focus { + text-decoration: none; +} +@media (min-width: 768px) { + .navbar > .container .note-editor .navbar-brand { + margin-left: -15px; + } +} +.note-editor .navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} +.note-editor .navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.note-editor .navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .note-editor .navbar-toggle { + display: none; + } +} +.note-editor .navbar-nav { + margin: 7.5px -15px; +} +.note-editor .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .note-editor .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a, + .note-editor .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .note-editor .navbar-nav { + float: left; + margin: 0; + } + .note-editor .navbar-nav > li { + float: left; + } + .note-editor .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +@media (min-width: 768px) { + .note-editor .navbar-left { + float: left !important; + } + .note-editor .navbar-right { + float: right !important; + } +} +.note-editor .navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .note-editor .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .note-editor .navbar-form .form-control { + display: inline-block; + } + .note-editor .navbar-form .radio, + .note-editor .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .note-editor .navbar-form .radio input[type="radio"], + .note-editor .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +@media (max-width: 767px) { + .note-editor .navbar-form .form-group { + margin-bottom: 5px; + } +} +@media (min-width: 768px) { + .note-editor .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.note-editor .navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .navbar-nav.pull-right > li > .dropdown-menu, +.note-editor .navbar-nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.note-editor .navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.note-editor .navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .note-editor .navbar-text { + margin-left: 15px; + margin-right: 15px; + } +} +.note-editor .navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-brand { + color: #777777; +} +.note-editor .navbar-default .navbar-brand:hover, +.note-editor .navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.note-editor .navbar-default .navbar-text { + color: #777777; +} +.note-editor .navbar-default .navbar-nav > li > a { + color: #777777; +} +.note-editor .navbar-default .navbar-nav > li > a:hover, +.note-editor .navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} +.note-editor .navbar-default .navbar-nav > .active > a, +.note-editor .navbar-default .navbar-nav > .active > a:hover, +.note-editor .navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-nav > .disabled > a, +.note-editor .navbar-default .navbar-nav > .disabled > a:hover, +.note-editor .navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.note-editor .navbar-default .navbar-toggle { + border-color: #dddddd; +} +.note-editor .navbar-default .navbar-toggle:hover, +.note-editor .navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} +.note-editor .navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} +.note-editor .navbar-default .navbar-collapse, +.note-editor .navbar-default .navbar-form { + border-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-nav > .dropdown > a:hover .caret, +.note-editor .navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.note-editor .navbar-default .navbar-nav > .open > a, +.note-editor .navbar-default .navbar-nav > .open > a:hover, +.note-editor .navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555555; +} +.note-editor .navbar-default .navbar-nav > .open > a .caret, +.note-editor .navbar-default .navbar-nav > .open > a:hover .caret, +.note-editor .navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.note-editor .navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +@media (max-width: 767px) { + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.note-editor .navbar-default .navbar-link { + color: #777777; +} +.note-editor .navbar-default .navbar-link:hover { + color: #333333; +} +.note-editor .navbar-inverse { + background-color: #222222; + border-color: #080808; +} +.note-editor .navbar-inverse .navbar-brand { + color: #999999; +} +.note-editor .navbar-inverse .navbar-brand:hover, +.note-editor .navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-text { + color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > li > a { + color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > li > a:hover, +.note-editor .navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-nav > .active > a, +.note-editor .navbar-inverse .navbar-nav > .active > a:hover, +.note-editor .navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} +.note-editor .navbar-inverse .navbar-nav > .disabled > a, +.note-editor .navbar-inverse .navbar-nav > .disabled > a:hover, +.note-editor .navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-toggle { + border-color: #333333; +} +.note-editor .navbar-inverse .navbar-toggle:hover, +.note-editor .navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} +.note-editor .navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.note-editor .navbar-inverse .navbar-collapse, +.note-editor .navbar-inverse .navbar-form { + border-color: #101010; +} +.note-editor .navbar-inverse .navbar-nav > .open > a, +.note-editor .navbar-inverse .navbar-nav > .open > a:hover, +.note-editor .navbar-inverse .navbar-nav > .open > a:focus { + background-color: #080808; + color: #ffffff; +} +.note-editor .navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > .open > a .caret, +.note-editor .navbar-inverse .navbar-nav > .open > a:hover .caret, +.note-editor .navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +@media (max-width: 767px) { + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} +.note-editor .navbar-inverse .navbar-link { + color: #999999; +} +.note-editor .navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.note-editor .breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.note-editor .breadcrumb > li { + display: inline-block; +} +.note-editor .breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #cccccc; +} +.note-editor .breadcrumb > .active { + color: #999999; +} +.note-editor .pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.note-editor .pagination > li { + display: inline; +} +.note-editor .pagination > li > a, +.note-editor .pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + margin-left: -1px; +} +.note-editor .pagination > li:first-child > a, +.note-editor .pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.note-editor .pagination > li:last-child > a, +.note-editor .pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.note-editor .pagination > li > a:hover, +.note-editor .pagination > li > span:hover, +.note-editor .pagination > li > a:focus, +.note-editor .pagination > li > span:focus { + background-color: #eeeeee; +} +.note-editor .pagination > .active > a, +.note-editor .pagination > .active > span, +.note-editor .pagination > .active > a:hover, +.note-editor .pagination > .active > span:hover, +.note-editor .pagination > .active > a:focus, +.note-editor .pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; + cursor: default; +} +.note-editor .pagination > .disabled > span, +.note-editor .pagination > .disabled > span:hover, +.note-editor .pagination > .disabled > span:focus, +.note-editor .pagination > .disabled > a, +.note-editor .pagination > .disabled > a:hover, +.note-editor .pagination > .disabled > a:focus { + color: #999999; + background-color: #ffffff; + border-color: #dddddd; + cursor: not-allowed; +} +.note-editor .pagination-lg > li > a, +.note-editor .pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.note-editor .pagination-lg > li:first-child > a, +.note-editor .pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.note-editor .pagination-lg > li:last-child > a, +.note-editor .pagination-lg > li:last-child > span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} +.note-editor .pagination-sm > li > a, +.note-editor .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.note-editor .pagination-sm > li:first-child > a, +.note-editor .pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.note-editor .pagination-sm > li:last-child > a, +.note-editor .pagination-sm > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.note-editor .pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.note-editor .pager:before, +.note-editor .pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .pager:after { + clear: both; +} +.note-editor .pager:before, +.note-editor .pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .pager:after { + clear: both; +} +.note-editor .pager li { + display: inline; +} +.note-editor .pager li > a, +.note-editor .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} +.note-editor .pager li > a:hover, +.note-editor .pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.note-editor .pager .next > a, +.note-editor .pager .next > span { + float: right; +} +.note-editor .pager .previous > a, +.note-editor .pager .previous > span { + float: left; +} +.note-editor .pager .disabled > a, +.note-editor .pager .disabled > a:hover, +.note-editor .pager .disabled > a:focus, +.note-editor .pager .disabled > span { + color: #999999; + background-color: #ffffff; + cursor: not-allowed; +} +.note-editor .label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +.note-editor .label[href]:hover, +.note-editor .label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.note-editor .label:empty { + display: none; +} +.note-editor .label-default { + background-color: #999999; +} +.note-editor .label-default[href]:hover, +.note-editor .label-default[href]:focus { + background-color: #808080; +} +.note-editor .label-primary { + background-color: #428bca; +} +.note-editor .label-primary[href]:hover, +.note-editor .label-primary[href]:focus { + background-color: #3071a9; +} +.note-editor .label-success { + background-color: #5cb85c; +} +.note-editor .label-success[href]:hover, +.note-editor .label-success[href]:focus { + background-color: #449d44; +} +.note-editor .label-info { + background-color: #5bc0de; +} +.note-editor .label-info[href]:hover, +.note-editor .label-info[href]:focus { + background-color: #31b0d5; +} +.note-editor .label-warning { + background-color: #f0ad4e; +} +.note-editor .label-warning[href]:hover, +.note-editor .label-warning[href]:focus { + background-color: #ec971f; +} +.note-editor .label-danger { + background-color: #d9534f; +} +.note-editor .label-danger[href]:hover, +.note-editor .label-danger[href]:focus { + background-color: #c9302c; +} +.note-editor .badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #999999; + border-radius: 10px; +} +.note-editor .badge:empty { + display: none; +} +.note-editor a.badge:hover, +.note-editor a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.note-editor .btn .badge { + position: relative; + top: -1px; +} +.note-editor a.list-group-item.active > .badge, +.note-editor .nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} +.note-editor .nav-pills > li > a > .badge { + margin-left: 3px; +} +.note-editor .jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} +.note-editor .jumbotron h1 { + line-height: 1; + color: inherit; +} +.note-editor .jumbotron p { + line-height: 1.4; +} +.container .note-editor .jumbotron { + border-radius: 6px; +} +@media screen and (min-width: 768px) { + .note-editor .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .note-editor .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .note-editor .jumbotron h1 { + font-size: 63px; + } +} +.note-editor .thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; + display: block; + margin-bottom: 20px; +} +.note-editor .thumbnail > img { + display: block; + max-width: 100%; + height: auto; +} +.note-editor a.thumbnail:hover, +.note-editor a.thumbnail:focus, +.note-editor a.thumbnail.active { + border-color: #428bca; +} +.note-editor .thumbnail > img { + margin-left: auto; + margin-right: auto; +} +.note-editor .thumbnail .caption { + padding: 9px; + color: #333333; +} +.note-editor .alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.note-editor .alert h4 { + margin-top: 0; + color: inherit; +} +.note-editor .alert .alert-link { + font-weight: bold; +} +.note-editor .alert > p, +.note-editor .alert > ul { + margin-bottom: 0; +} +.note-editor .alert > p + p { + margin-top: 5px; +} +.note-editor .alert-dismissable { + padding-right: 35px; +} +.note-editor .alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.note-editor .alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.note-editor .alert-success hr { + border-top-color: #c9e2b3; +} +.note-editor .alert-success .alert-link { + color: #356635; +} +.note-editor .alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.note-editor .alert-info hr { + border-top-color: #a6e1ec; +} +.note-editor .alert-info .alert-link { + color: #2d6987; +} +.note-editor .alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #c09853; +} +.note-editor .alert-warning hr { + border-top-color: #f7e1b5; +} +.note-editor .alert-warning .alert-link { + color: #a47e3c; +} +.note-editor .alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #b94a48; +} +.note-editor .alert-danger hr { + border-top-color: #e4b9c0; +} +.note-editor .alert-danger .alert-link { + color: #953b39; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.note-editor .progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.note-editor .progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.note-editor .progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.note-editor .progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.note-editor .progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .note-editor .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .note-editor .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .note-editor .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .note-editor .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .media, +.note-editor .media-body { + overflow: hidden; + zoom: 1; +} +.note-editor .media, +.note-editor .media .media { + margin-top: 15px; +} +.note-editor .media:first-child { + margin-top: 0; +} +.note-editor .media-object { + display: block; +} +.note-editor .media-heading { + margin: 0 0 5px; +} +.note-editor .media > .pull-left { + margin-right: 10px; +} +.note-editor .media > .pull-right { + margin-left: 10px; +} +.note-editor .media-list { + padding-left: 0; + list-style: none; +} +.note-editor .list-group { + margin-bottom: 20px; + padding-left: 0; +} +.note-editor .list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.note-editor .list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.note-editor .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .list-group-item > .badge { + float: right; +} +.note-editor .list-group-item > .badge + .badge { + margin-right: 5px; +} +.note-editor a.list-group-item { + color: #555555; +} +.note-editor a.list-group-item .list-group-item-heading { + color: #333333; +} +.note-editor a.list-group-item:hover, +.note-editor a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.note-editor a.list-group-item.active, +.note-editor a.list-group-item.active:hover, +.note-editor a.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.note-editor a.list-group-item.active .list-group-item-heading, +.note-editor a.list-group-item.active:hover .list-group-item-heading, +.note-editor a.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} +.note-editor a.list-group-item.active .list-group-item-text, +.note-editor a.list-group-item.active:hover .list-group-item-text, +.note-editor a.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} +.note-editor .list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.note-editor .list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.note-editor .panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.note-editor .panel-body { + padding: 15px; +} +.note-editor .panel-body:before, +.note-editor .panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .panel-body:after { + clear: both; +} +.note-editor .panel-body:before, +.note-editor .panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .panel-body:after { + clear: both; +} +.note-editor .panel > .list-group { + margin-bottom: 0; +} +.note-editor .panel > .list-group .list-group-item { + border-width: 1px 0; +} +.note-editor .panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} +.note-editor .panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.note-editor .panel > .table, +.note-editor .panel > .table-responsive { + margin-bottom: 0; +} +.note-editor .panel > .panel-body + .table, +.note-editor .panel > .panel-body + .table-responsive { + border-top: 1px solid #dddddd; +} +.note-editor .panel > .table-bordered, +.note-editor .panel > .table-responsive > .table-bordered { + border: 0; +} +.note-editor .panel > .table-bordered > thead > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.note-editor .panel > .table-bordered > tbody > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.note-editor .panel > .table-bordered > tfoot > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.note-editor .panel > .table-bordered > thead > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.note-editor .panel > .table-bordered > tbody > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.note-editor .panel > .table-bordered > tfoot > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.note-editor .panel > .table-bordered > thead > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.note-editor .panel > .table-bordered > tbody > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.note-editor .panel > .table-bordered > tfoot > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.note-editor .panel > .table-bordered > thead > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.note-editor .panel > .table-bordered > tbody > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.note-editor .panel > .table-bordered > tfoot > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.note-editor .panel > .table-bordered > thead > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr:last-child > th, +.note-editor .panel > .table-bordered > tbody > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.note-editor .panel > .table-bordered > tfoot > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, +.note-editor .panel > .table-bordered > thead > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr:last-child > td, +.note-editor .panel > .table-bordered > tbody > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.note-editor .panel > .table-bordered > tfoot > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; +} +.note-editor .panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.note-editor .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} +.note-editor .panel-title > a { + color: inherit; +} +.note-editor .panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.note-editor .panel-group .panel { + margin-bottom: 0; + border-radius: 4px; + overflow: hidden; +} +.note-editor .panel-group .panel + .panel { + margin-top: 5px; +} +.note-editor .panel-group .panel-heading { + border-bottom: 0; +} +.note-editor .panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} +.note-editor .panel-group .panel-footer { + border-top: 0; +} +.note-editor .panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} +.note-editor .panel-default { + border-color: #dddddd; +} +.note-editor .panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} +.note-editor .panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} +.note-editor .panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} +.note-editor .panel-primary { + border-color: #428bca; +} +.note-editor .panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.note-editor .panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} +.note-editor .panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} +.note-editor .panel-success { + border-color: #d6e9c6; +} +.note-editor .panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.note-editor .panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} +.note-editor .panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} +.note-editor .panel-warning { + border-color: #faebcc; +} +.note-editor .panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #faebcc; +} +.note-editor .panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #faebcc; +} +.note-editor .panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #faebcc; +} +.note-editor .panel-danger { + border-color: #ebccd1; +} +.note-editor .panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #ebccd1; +} +.note-editor .panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #ebccd1; +} +.note-editor .panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #ebccd1; +} +.note-editor .panel-info { + border-color: #bce8f1; +} +.note-editor .panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} +.note-editor .panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} +.note-editor .panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} +.note-editor .well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.note-editor .well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.note-editor .well-lg { + padding: 24px; + border-radius: 6px; +} +.note-editor .well-sm { + padding: 9px; + border-radius: 3px; +} +.note-editor .close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.note-editor .close:hover, +.note-editor .close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.note-editor .close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: auto; + overflow-y: scroll; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-dialog { + margin-left: auto; + margin-right: auto; + width: auto; + padding: 10px; + z-index: 1050; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: none; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.428571429px; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.428571429; +} +.modal-body { + position: relative; + padding: 20px; +} +.modal-footer { + margin-top: 15px; + padding: 19px 20px 20px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +@media screen and (min-width: 768px) { + .modal-dialog { + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity=50); + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-control.left { + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #ffffff; + border-radius: 10px; + cursor: pointer; +} +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #ffffff; +} +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicons-chevron-left, + .carousel-control .glyphicons-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.clearfix:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +tr.visible-xs, +th.visible-xs, +td.visible-xs { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} +.visible-sm, +tr.visible-sm, +th.visible-sm, +td.visible-sm { + display: none !important; +} +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} +.visible-md, +tr.visible-md, +th.visible-md, +td.visible-md { + display: none !important; +} +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} +.visible-lg, +tr.visible-lg, +th.visible-lg, +td.visible-lg { + display: none !important; +} +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +.hidden-xs { + display: block !important; +} +tr.hidden-xs { + display: table-row !important; +} +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-xs, + tr.hidden-xs, + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm, + tr.hidden-xs.hidden-sm, + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md, + tr.hidden-xs.hidden-md, + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-xs.hidden-lg, + tr.hidden-xs.hidden-lg, + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} +.hidden-sm { + display: block !important; +} +tr.hidden-sm { + display: table-row !important; +} +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-sm.hidden-xs, + tr.hidden-sm.hidden-xs, + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm, + tr.hidden-sm, + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md, + tr.hidden-sm.hidden-md, + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-sm.hidden-lg, + tr.hidden-sm.hidden-lg, + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} +.hidden-md { + display: block !important; +} +tr.hidden-md { + display: table-row !important; +} +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-md.hidden-xs, + tr.hidden-md.hidden-xs, + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm, + tr.hidden-md.hidden-sm, + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md, + tr.hidden-md, + th.hidden-md, + td.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-md.hidden-lg, + tr.hidden-md.hidden-lg, + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} +.hidden-lg { + display: block !important; +} +tr.hidden-lg { + display: table-row !important; +} +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-lg.hidden-xs, + tr.hidden-lg.hidden-xs, + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm, + tr.hidden-lg.hidden-sm, + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md, + tr.hidden-lg.hidden-md, + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg, + tr.hidden-lg, + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} +.visible-print, +tr.visible-print, +th.visible-print, +td.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print, + tr.hidden-print, + th.hidden-print, + td.hidden-print { + display: none !important; + } +} diff --git a/vendor/assets/components/summernote/dist/summernote.css b/vendor/assets/components/summernote/dist/summernote.css new file mode 100644 index 000000000..8cc3a976e --- /dev/null +++ b/vendor/assets/components/summernote/dist/summernote.css @@ -0,0 +1 @@ +.note-editor{position:relative;border:1px solid #a9a9a9}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;border:2px dashed #87cefa;opacity:.95;pointer-event:none}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf;border:2px dashed #098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-toolbar{background-color:#f5f5f5;border-bottom:1px solid #a9a9a9}.note-editor.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%}.note-editor.fullscreen .note-editable{background-color:white}.note-editor.fullscreen .note-resizebar{display:none}.note-editor.codeview .note-editable{display:none}.note-editor.codeview .note-codable{display:block}.note-editor .note-statusbar{background-color:#f5f5f5}.note-editor .note-statusbar .note-resizebar{width:100%;height:8px;cursor:ns-resize;border-top:1px solid #a9a9a9}.note-editor .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor .note-editable[contenteditable=true]:empty:not(:focus):before{color:#a9a9a9;content:attr(data-placeholder)}.note-editor .note-editable{padding:10px;overflow:auto;outline:0}.note-editor .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-air-editor{outline:0}.note-popover .popover{max-width:none}.note-popover .popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover .popover .arrow{left:20px}.note-popover .popover .popover-content,.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover .popover-content>.btn-group,.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover .popover-content .btn-group .note-table,.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker,.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover .popover-content .note-style h1,.note-toolbar .note-style h1,.note-popover .popover .popover-content .note-style h2,.note-toolbar .note-style h2,.note-popover .popover .popover-content .note-style h3,.note-toolbar .note-style h3,.note-popover .popover .popover-content .note-style h4,.note-toolbar .note-style h4,.note-popover .popover .popover-content .note-style h5,.note-toolbar .note-style h5,.note-popover .popover .popover-content .note-style h6,.note-toolbar .note-style h6,.note-popover .popover .popover-content .note-style blockquote,.note-toolbar .note-style blockquote{margin:0}.note-popover .popover .popover-content .note-color .dropdown-toggle,.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover .popover-content .note-color .dropdown-menu,.note-toolbar .note-color .dropdown-menu{min-width:340px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group,.note-toolbar .note-color .dropdown-menu .btn-group{margin:0}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group:first-child,.note-toolbar .note-color .dropdown-menu .btn-group:first-child{margin:0 5px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title,.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset,.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset{padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row,.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row{height:20px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover,.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover{background:#eee}.note-popover .popover .popover-content .note-para .dropdown-menu,.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover .popover-content .note-para .dropdown-menu>div:first-child,.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover .popover-content .dropdown-menu,.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover .popover-content .dropdown-menu.right,.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover .popover-content .dropdown-menu.right::before,.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover .popover-content .dropdown-menu.right::after,.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover .popover-content .dropdown-menu li a i,.note-toolbar .dropdown-menu li a i{color:deepskyblue;visibility:hidden}.note-popover .popover .popover-content .dropdown-menu li a.checked i,.note-toolbar .dropdown-menu li a.checked i{visibility:visible}.note-popover .popover .popover-content .note-fontsize-10,.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover .popover-content .note-color-palette,.note-toolbar .note-color-palette{line-height:1}.note-popover .popover .popover-content .note-color-palette div .note-color-btn,.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover .popover-content .note-color-palette div .note-color-btn:hover,.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}.note-dialog .note-help-dialog{font-size:12px;color:#ccc;background:transparent;background-color:#222!important;border:0;-webkit-opacity:.9;-khtml-opacity:.9;-moz-opacity:.9;opacity:.9;-ms-filter:alpha(opacity=90);filter:alpha(opacity=90)}.note-dialog .note-help-dialog .modal-content{background:transparent;border:1px solid white;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.note-dialog .note-help-dialog a{font-size:12px;color:white}.note-dialog .note-help-dialog .title{padding-bottom:5px;margin-bottom:10px;font-size:14px;font-weight:bold;color:white;border-bottom:white 1px solid}.note-dialog .note-help-dialog .modal-close{font-size:14px;color:#dd0;cursor:pointer}.note-dialog .note-help-dialog .text-center{margin:10px 0 0}.note-dialog .note-help-dialog .note-shortcut{padding-top:8px;padding-bottom:8px}.note-dialog .note-help-dialog .note-shortcut-row{margin-right:-5px;margin-left:-5px}.note-dialog .note-help-dialog .note-shortcut-col{padding-right:5px;padding-left:5px}.note-dialog .note-help-dialog .note-shortcut-title{font-size:13px;font-weight:bold;color:#dd0}.note-dialog .note-help-dialog .note-shortcut-key{font-family:"Courier New";color:#dd0;text-align:right}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)} \ No newline at end of file diff --git a/vendor/assets/components/summernote/dist/summernote.js b/vendor/assets/components/summernote/dist/summernote.js new file mode 100644 index 000000000..fda198d32 --- /dev/null +++ b/vendor/assets/components/summernote/dist/summernote.js @@ -0,0 +1,6890 @@ +/** + * Super simple wysiwyg editor on Bootstrap v0.6.6 + * http://summernote.org/ + * + * summernote.js + * Copyright 2013-2015 Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license./ + * + * Date: 2015-04-29T19:41Z + */ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else { + // Browser globals: jQuery + factory(window.jQuery); + } +}(function ($) { + + + + if (!Array.prototype.reduce) { + /** + * Array.prototype.reduce polyfill + * + * @param {Function} callback + * @param {Value} [initialValue] + * @return {Value} + * + * @see http://goo.gl/WNriQD + */ + Array.prototype.reduce = function (callback) { + var t = Object(this), len = t.length >>> 0, k = 0, value; + if (arguments.length === 2) { + value = arguments[1]; + } else { + while (k < len && !(k in t)) { + k++; + } + if (k >= len) { + throw new TypeError('Reduce of empty array with no initial value'); + } + value = t[k++]; + } + for (; k < len; k++) { + if (k in t) { + value = callback(value, t[k], k, t); + } + } + return value; + }; + } + + if ('function' !== typeof Array.prototype.filter) { + /** + * Array.prototype.filter polyfill + * + * @param {Function} func + * @return {Array} + * + * @see http://goo.gl/T1KFnq + */ + Array.prototype.filter = function (func) { + var t = Object(this), len = t.length >>> 0; + + var res = []; + var thisArg = arguments.length >= 2 ? arguments[1] : void 0; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; + if (func.call(thisArg, val, i, t)) { + res.push(val); + } + } + } + + return res; + }; + } + + var isSupportAmd = typeof define === 'function' && define.amd; + + /** + * returns whether font is installed or not. + * + * @param {String} fontName + * @return {Boolean} + */ + var isFontInstalled = function (fontName) { + var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS'; + var $tester = $('
').css({ + position: 'absolute', + left: '-9999px', + top: '-9999px', + fontSize: '200px' + }).text('mmmmmmmmmwwwwwww').appendTo(document.body); + + var originalWidth = $tester.css('fontFamily', testFontName).width(); + var width = $tester.css('fontFamily', fontName + ',' + testFontName).width(); + + $tester.remove(); + + return originalWidth !== width; + }; + + /** + * @class core.agent + * + * Object which check platform and agent + * + * @singleton + * @alternateClassName agent + */ + var agent = { + /** @property {Boolean} [isMac=false] true if this agent is Mac */ + isMac: navigator.appVersion.indexOf('Mac') > -1, + /** @property {Boolean} [isMSIE=false] true if this agent is a Internet Explorer */ + isMSIE: navigator.userAgent.indexOf('MSIE') > -1 || navigator.userAgent.indexOf('Trident') > -1, + /** @property {Boolean} [isFF=false] true if this agent is a Firefox */ + isFF: navigator.userAgent.indexOf('Firefox') > -1, + /** @property {String} jqueryVersion current jQuery version string */ + jqueryVersion: parseFloat($.fn.jquery), + isSupportAmd: isSupportAmd, + hasCodeMirror: isSupportAmd ? require.specified('CodeMirror') : !!window.CodeMirror, + isFontInstalled: isFontInstalled, + isW3CRangeSupport: !!document.createRange + }; + + /** + * @class core.func + * + * func utils (for high-order func's arg) + * + * @singleton + * @alternateClassName func + */ + var func = (function () { + var eq = function (itemA) { + return function (itemB) { + return itemA === itemB; + }; + }; + + var eq2 = function (itemA, itemB) { + return itemA === itemB; + }; + + var peq2 = function (propName) { + return function (itemA, itemB) { + return itemA[propName] === itemB[propName]; + }; + }; + + var ok = function () { + return true; + }; + + var fail = function () { + return false; + }; + + var not = function (f) { + return function () { + return !f.apply(f, arguments); + }; + }; + + var and = function (fA, fB) { + return function (item) { + return fA(item) && fB(item); + }; + }; + + var self = function (a) { + return a; + }; + + var idCounter = 0; + + /** + * generate a globally-unique id + * + * @param {String} [prefix] + */ + var uniqueId = function (prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + }; + + /** + * returns bnd (bounds) from rect + * + * - IE Compatability Issue: http://goo.gl/sRLOAo + * - Scroll Issue: http://goo.gl/sNjUc + * + * @param {Rect} rect + * @return {Object} bounds + * @return {Number} bounds.top + * @return {Number} bounds.left + * @return {Number} bounds.width + * @return {Number} bounds.height + */ + var rect2bnd = function (rect) { + var $document = $(document); + return { + top: rect.top + $document.scrollTop(), + left: rect.left + $document.scrollLeft(), + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + }; + + /** + * returns a copy of the object where the keys have become the values and the values the keys. + * @param {Object} obj + * @return {Object} + */ + var invertObject = function (obj) { + var inverted = {}; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + inverted[obj[key]] = key; + } + } + return inverted; + }; + + /** + * @param {String} namespace + * @param {String} [prefix] + * @return {String} + */ + var namespaceToCamel = function (namespace, prefix) { + prefix = prefix || ''; + return prefix + namespace.split('.').map(function (name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + }).join(''); + }; + + return { + eq: eq, + eq2: eq2, + peq2: peq2, + ok: ok, + fail: fail, + self: self, + not: not, + and: and, + uniqueId: uniqueId, + rect2bnd: rect2bnd, + invertObject: invertObject, + namespaceToCamel: namespaceToCamel + }; + })(); + + /** + * @class core.list + * + * list utils + * + * @singleton + * @alternateClassName list + */ + var list = (function () { + /** + * returns the first item of an array. + * + * @param {Array} array + */ + var head = function (array) { + return array[0]; + }; + + /** + * returns the last item of an array. + * + * @param {Array} array + */ + var last = function (array) { + return array[array.length - 1]; + }; + + /** + * returns everything but the last entry of the array. + * + * @param {Array} array + */ + var initial = function (array) { + return array.slice(0, array.length - 1); + }; + + /** + * returns the rest of the items in an array. + * + * @param {Array} array + */ + var tail = function (array) { + return array.slice(1); + }; + + /** + * returns item of array + */ + var find = function (array, pred) { + for (var idx = 0, len = array.length; idx < len; idx ++) { + var item = array[idx]; + if (pred(item)) { + return item; + } + } + }; + + /** + * returns true if all of the values in the array pass the predicate truth test. + */ + var all = function (array, pred) { + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (!pred(array[idx])) { + return false; + } + } + return true; + }; + + /** + * returns true if the value is present in the list. + */ + var contains = function (array, item) { + return $.inArray(item, array) !== -1; + }; + + /** + * get sum from a list + * + * @param {Array} array - array + * @param {Function} fn - iterator + */ + var sum = function (array, fn) { + fn = fn || func.self; + return array.reduce(function (memo, v) { + return memo + fn(v); + }, 0); + }; + + /** + * returns a copy of the collection with array type. + * @param {Collection} collection - collection eg) node.childNodes, ... + */ + var from = function (collection) { + var result = [], idx = -1, length = collection.length; + while (++idx < length) { + result[idx] = collection[idx]; + } + return result; + }; + + /** + * cluster elements by predicate function. + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + * @param {Array[]} + */ + var clusterBy = function (array, fn) { + if (!array.length) { return []; } + var aTail = tail(array); + return aTail.reduce(function (memo, v) { + var aLast = last(memo); + if (fn(last(aLast), v)) { + aLast[aLast.length] = v; + } else { + memo[memo.length] = [v]; + } + return memo; + }, [[head(array)]]); + }; + + /** + * returns a copy of the array with all falsy values removed + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + */ + var compact = function (array) { + var aResult = []; + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (array[idx]) { aResult.push(array[idx]); } + } + return aResult; + }; + + /** + * produces a duplicate-free version of the array + * + * @param {Array} array + */ + var unique = function (array) { + var results = []; + + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (!contains(results, array[idx])) { + results.push(array[idx]); + } + } + + return results; + }; + + /** + * returns next item. + * @param {Array} array + */ + var next = function (array, item) { + var idx = array.indexOf(item); + if (idx === -1) { return null; } + + return array[idx + 1]; + }; + + /** + * returns prev item. + * @param {Array} array + */ + var prev = function (array, item) { + var idx = array.indexOf(item); + if (idx === -1) { return null; } + + return array[idx - 1]; + }; + + + return { head: head, last: last, initial: initial, tail: tail, + prev: prev, next: next, find: find, contains: contains, + all: all, sum: sum, from: from, + clusterBy: clusterBy, compact: compact, unique: unique }; + })(); + + + var NBSP_CHAR = String.fromCharCode(160); + var ZERO_WIDTH_NBSP_CHAR = '\ufeff'; + + /** + * @class core.dom + * + * Dom functions + * + * @singleton + * @alternateClassName dom + */ + var dom = (function () { + /** + * @method isEditable + * + * returns whether node is `note-editable` or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isEditable = function (node) { + return node && $(node).hasClass('note-editable'); + }; + + /** + * @method isControlSizing + * + * returns whether node is `note-control-sizing` or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isControlSizing = function (node) { + return node && $(node).hasClass('note-control-sizing'); + }; + + /** + * @method buildLayoutInfo + * + * build layoutInfo from $editor(.note-editor) + * + * @param {jQuery} $editor + * @return {Object} + * @return {Function} return.editor + * @return {Node} return.dropzone + * @return {Node} return.toolbar + * @return {Node} return.editable + * @return {Node} return.codable + * @return {Node} return.popover + * @return {Node} return.handle + * @return {Node} return.dialog + */ + var buildLayoutInfo = function ($editor) { + var makeFinder; + + // air mode + if ($editor.hasClass('note-air-editor')) { + var id = list.last($editor.attr('id').split('-')); + makeFinder = function (sIdPrefix) { + return function () { return $(sIdPrefix + id); }; + }; + + return { + editor: function () { return $editor; }, + holder : function () { return $editor.data('holder'); }, + editable: function () { return $editor; }, + popover: makeFinder('#note-popover-'), + handle: makeFinder('#note-handle-'), + dialog: makeFinder('#note-dialog-') + }; + + // frame mode + } else { + makeFinder = function (sClassName) { + return function () { return $editor.find(sClassName); }; + }; + return { + editor: function () { return $editor; }, + holder : function () { return $editor.data('holder'); }, + dropzone: makeFinder('.note-dropzone'), + toolbar: makeFinder('.note-toolbar'), + editable: makeFinder('.note-editable'), + codable: makeFinder('.note-codable'), + statusbar: makeFinder('.note-statusbar'), + popover: makeFinder('.note-popover'), + handle: makeFinder('.note-handle'), + dialog: makeFinder('.note-dialog') + }; + } + }; + + /** + * returns makeLayoutInfo from editor's descendant node. + * + * @private + * @param {Node} descendant + * @return {Object} + */ + var makeLayoutInfo = function (descendant) { + var $target = $(descendant).closest('.note-editor, .note-air-editor, .note-air-layout'); + + if (!$target.length) { + return null; + } + + var $editor; + if ($target.is('.note-editor, .note-air-editor')) { + $editor = $target; + } else { + $editor = $('#note-editor-' + list.last($target.attr('id').split('-'))); + } + + return buildLayoutInfo($editor); + }; + + /** + * @method makePredByNodeName + * + * returns predicate which judge whether nodeName is same + * + * @param {String} nodeName + * @return {Function} + */ + var makePredByNodeName = function (nodeName) { + nodeName = nodeName.toUpperCase(); + return function (node) { + return node && node.nodeName.toUpperCase() === nodeName; + }; + }; + + /** + * @method isText + * + * + * + * @param {Node} node + * @return {Boolean} true if node's type is text(3) + */ + var isText = function (node) { + return node && node.nodeType === 3; + }; + + /** + * ex) br, col, embed, hr, img, input, ... + * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements + */ + var isVoid = function (node) { + return node && /^BR|^IMG|^HR/.test(node.nodeName.toUpperCase()); + }; + + var isPara = function (node) { + if (isEditable(node)) { + return false; + } + + // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph + return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase()); + }; + + var isLi = makePredByNodeName('LI'); + + var isPurePara = function (node) { + return isPara(node) && !isLi(node); + }; + + var isTable = makePredByNodeName('TABLE'); + + var isInline = function (node) { + return !isBodyContainer(node) && + !isList(node) && + !isPara(node) && + !isTable(node) && + !isBlockquote(node); + }; + + var isList = function (node) { + return node && /^UL|^OL/.test(node.nodeName.toUpperCase()); + }; + + var isCell = function (node) { + return node && /^TD|^TH/.test(node.nodeName.toUpperCase()); + }; + + var isBlockquote = makePredByNodeName('BLOCKQUOTE'); + + var isBodyContainer = function (node) { + return isCell(node) || isBlockquote(node) || isEditable(node); + }; + + var isAnchor = makePredByNodeName('A'); + + var isParaInline = function (node) { + return isInline(node) && !!ancestor(node, isPara); + }; + + var isBodyInline = function (node) { + return isInline(node) && !ancestor(node, isPara); + }; + + var isBody = makePredByNodeName('BODY'); + + /** + * returns whether nodeB is closest sibling of nodeA + * + * @param {Node} nodeA + * @param {Node} nodeB + * @return {Boolean} + */ + var isClosestSibling = function (nodeA, nodeB) { + return nodeA.nextSibling === nodeB || + nodeA.previousSibling === nodeB; + }; + + /** + * returns array of closest siblings with node + * + * @param {Node} node + * @param {function} [pred] - predicate function + * @return {Node[]} + */ + var withClosestSiblings = function (node, pred) { + pred = pred || func.ok; + + var siblings = []; + if (node.previousSibling && pred(node.previousSibling)) { + siblings.push(node.previousSibling); + } + siblings.push(node); + if (node.nextSibling && pred(node.nextSibling)) { + siblings.push(node.nextSibling); + } + return siblings; + }; + + /** + * blank HTML for cursor position + * - [workaround] for MSIE IE doesn't works with bogus br + */ + var blankHTML = agent.isMSIE ? ' ' : '
'; + + /** + * @method nodeLength + * + * returns #text's text size or element's childNodes size + * + * @param {Node} node + */ + var nodeLength = function (node) { + if (isText(node)) { + return node.nodeValue.length; + } + + return node.childNodes.length; + }; + + /** + * returns whether node is empty or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isEmpty = function (node) { + var len = nodeLength(node); + + if (len === 0) { + return true; + } else if (!dom.isText(node) && len === 1 && node.innerHTML === blankHTML) { + // ex)


,
+ return true; + } + + return false; + }; + + /** + * padding blankHTML if node is empty (for cursor position) + */ + var paddingBlankHTML = function (node) { + if (!isVoid(node) && !nodeLength(node)) { + node.innerHTML = blankHTML; + } + }; + + /** + * find nearest ancestor predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + var ancestor = function (node, pred) { + while (node) { + if (pred(node)) { return node; } + if (isEditable(node)) { break; } + + node = node.parentNode; + } + return null; + }; + + /** + * find nearest ancestor only single child blood line and predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + var singleChildAncestor = function (node, pred) { + node = node.parentNode; + + while (node) { + if (nodeLength(node) !== 1) { break; } + if (pred(node)) { return node; } + if (isEditable(node)) { break; } + + node = node.parentNode; + } + return null; + }; + + /** + * returns new array of ancestor nodes (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + var listAncestor = function (node, pred) { + pred = pred || func.fail; + + var ancestors = []; + ancestor(node, function (el) { + if (!isEditable(el)) { + ancestors.push(el); + } + + return pred(el); + }); + return ancestors; + }; + + /** + * find farthest ancestor predicate hit + */ + var lastAncestor = function (node, pred) { + var ancestors = listAncestor(node); + return list.last(ancestors.filter(pred)); + }; + + /** + * returns common ancestor node between two nodes. + * + * @param {Node} nodeA + * @param {Node} nodeB + */ + var commonAncestor = function (nodeA, nodeB) { + var ancestors = listAncestor(nodeA); + for (var n = nodeB; n; n = n.parentNode) { + if ($.inArray(n, ancestors) > -1) { return n; } + } + return null; // difference document area + }; + + /** + * listing all previous siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + var listPrev = function (node, pred) { + pred = pred || func.fail; + + var nodes = []; + while (node) { + if (pred(node)) { break; } + nodes.push(node); + node = node.previousSibling; + } + return nodes; + }; + + /** + * listing next siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + var listNext = function (node, pred) { + pred = pred || func.fail; + + var nodes = []; + while (node) { + if (pred(node)) { break; } + nodes.push(node); + node = node.nextSibling; + } + return nodes; + }; + + /** + * listing descendant nodes + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + var listDescendant = function (node, pred) { + var descendents = []; + pred = pred || func.ok; + + // start DFS(depth first search) with node + (function fnWalk(current) { + if (node !== current && pred(current)) { + descendents.push(current); + } + for (var idx = 0, len = current.childNodes.length; idx < len; idx++) { + fnWalk(current.childNodes[idx]); + } + })(node); + + return descendents; + }; + + /** + * wrap node with new tag. + * + * @param {Node} node + * @param {Node} tagName of wrapper + * @return {Node} - wrapper + */ + var wrap = function (node, wrapperName) { + var parent = node.parentNode; + var wrapper = $('<' + wrapperName + '>')[0]; + + parent.insertBefore(wrapper, node); + wrapper.appendChild(node); + + return wrapper; + }; + + /** + * insert node after preceding + * + * @param {Node} node + * @param {Node} preceding - predicate function + */ + var insertAfter = function (node, preceding) { + var next = preceding.nextSibling, parent = preceding.parentNode; + if (next) { + parent.insertBefore(node, next); + } else { + parent.appendChild(node); + } + return node; + }; + + /** + * append elements. + * + * @param {Node} node + * @param {Collection} aChild + */ + var appendChildNodes = function (node, aChild) { + $.each(aChild, function (idx, child) { + node.appendChild(child); + }); + return node; + }; + + /** + * returns whether boundaryPoint is left edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isLeftEdgePoint = function (point) { + return point.offset === 0; + }; + + /** + * returns whether boundaryPoint is right edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isRightEdgePoint = function (point) { + return point.offset === nodeLength(point.node); + }; + + /** + * returns whether boundaryPoint is edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isEdgePoint = function (point) { + return isLeftEdgePoint(point) || isRightEdgePoint(point); + }; + + /** + * returns wheter node is left edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + var isLeftEdgeOf = function (node, ancestor) { + while (node && node !== ancestor) { + if (position(node) !== 0) { + return false; + } + node = node.parentNode; + } + + return true; + }; + + /** + * returns whether node is right edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + var isRightEdgeOf = function (node, ancestor) { + while (node && node !== ancestor) { + if (position(node) !== nodeLength(node.parentNode) - 1) { + return false; + } + node = node.parentNode; + } + + return true; + }; + + /** + * returns offset from parent. + * + * @param {Node} node + */ + var position = function (node) { + var offset = 0; + while ((node = node.previousSibling)) { + offset += 1; + } + return offset; + }; + + var hasChildren = function (node) { + return !!(node && node.childNodes && node.childNodes.length); + }; + + /** + * returns previous boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + var prevPoint = function (point, isSkipInnerOffset) { + var node, offset; + + if (point.offset === 0) { + if (isEditable(point.node)) { + return null; + } + + node = point.node.parentNode; + offset = position(point.node); + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset - 1]; + offset = nodeLength(node); + } else { + node = point.node; + offset = isSkipInnerOffset ? 0 : point.offset - 1; + } + + return { + node: node, + offset: offset + }; + }; + + /** + * returns next boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + var nextPoint = function (point, isSkipInnerOffset) { + var node, offset; + + if (nodeLength(point.node) === point.offset) { + if (isEditable(point.node)) { + return null; + } + + node = point.node.parentNode; + offset = position(point.node) + 1; + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset]; + offset = 0; + } else { + node = point.node; + offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; + } + + return { + node: node, + offset: offset + }; + }; + + /** + * returns whether pointA and pointB is same or not. + * + * @param {BoundaryPoint} pointA + * @param {BoundaryPoint} pointB + * @return {Boolean} + */ + var isSamePoint = function (pointA, pointB) { + return pointA.node === pointB.node && pointA.offset === pointB.offset; + }; + + /** + * returns whether point is visible (can set cursor) or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isVisiblePoint = function (point) { + if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) { + return true; + } + + var leftNode = point.node.childNodes[point.offset - 1]; + var rightNode = point.node.childNodes[point.offset]; + if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) { + return true; + } + + return false; + }; + + /** + * @method prevPointUtil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + var prevPointUntil = function (point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = prevPoint(point); + } + + return null; + }; + + /** + * @method nextPointUntil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + var nextPointUntil = function (point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = nextPoint(point); + } + + return null; + }; + + /** + * returns whether point has character or not. + * + * @param {Point} point + * @return {Boolean} + */ + var isCharPoint = function (point) { + if (!isText(point.node)) { + return false; + } + + var ch = point.node.nodeValue.charAt(point.offset - 1); + return ch && (ch !== ' ' && ch !== NBSP_CHAR); + }; + + /** + * @method walkPoint + * + * @param {BoundaryPoint} startPoint + * @param {BoundaryPoint} endPoint + * @param {Function} handler + * @param {Boolean} isSkipInnerOffset + */ + var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) { + var point = startPoint; + + while (point) { + handler(point); + + if (isSamePoint(point, endPoint)) { + break; + } + + var isSkipOffset = isSkipInnerOffset && + startPoint.node !== point.node && + endPoint.node !== point.node; + point = nextPoint(point, isSkipOffset); + } + }; + + /** + * @method makeOffsetPath + * + * return offsetPath(array of offset) from ancestor + * + * @param {Node} ancestor - ancestor node + * @param {Node} node + */ + var makeOffsetPath = function (ancestor, node) { + var ancestors = listAncestor(node, func.eq(ancestor)); + return $.map(ancestors, position).reverse(); + }; + + /** + * @method fromOffsetPath + * + * return element from offsetPath(array of offset) + * + * @param {Node} ancestor - ancestor node + * @param {array} offsets - offsetPath + */ + var fromOffsetPath = function (ancestor, offsets) { + var current = ancestor; + for (var i = 0, len = offsets.length; i < len; i++) { + if (current.childNodes.length <= offsets[i]) { + current = current.childNodes[current.childNodes.length - 1]; + } else { + current = current.childNodes[offsets[i]]; + } + } + return current; + }; + + /** + * @method splitNode + * + * split element or #text + * + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @return {Node} right node of boundaryPoint + */ + var splitNode = function (point, options) { + var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML; + var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint; + + // edge case + if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) { + if (isLeftEdgePoint(point)) { + return point.node; + } else if (isRightEdgePoint(point)) { + return point.node.nextSibling; + } + } + + // split #text + if (isText(point.node)) { + return point.node.splitText(point.offset); + } else { + var childNode = point.node.childNodes[point.offset]; + var clone = insertAfter(point.node.cloneNode(false), point.node); + appendChildNodes(clone, listNext(childNode)); + + if (!isSkipPaddingBlankHTML) { + paddingBlankHTML(point.node); + paddingBlankHTML(clone); + } + + return clone; + } + }; + + /** + * @method splitTree + * + * split tree by point + * + * @param {Node} root - split root + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @return {Node} right node of boundaryPoint + */ + var splitTree = function (root, point, options) { + // ex) [#text, ,

] + var ancestors = listAncestor(point.node, func.eq(root)); + + if (!ancestors.length) { + return null; + } else if (ancestors.length === 1) { + return splitNode(point, options); + } + + return ancestors.reduce(function (node, parent) { + if (node === point.node) { + node = splitNode(point, options); + } + + return splitNode({ + node: parent, + offset: node ? dom.position(node) : nodeLength(parent) + }, options); + }); + }; + + /** + * split point + * + * @param {Point} point + * @param {Boolean} isInline + * @return {Object} + */ + var splitPoint = function (point, isInline) { + // find splitRoot, container + // - inline: splitRoot is a child of paragraph + // - block: splitRoot is a child of bodyContainer + var pred = isInline ? isPara : isBodyContainer; + var ancestors = listAncestor(point.node, pred); + var topAncestor = list.last(ancestors) || point.node; + + var splitRoot, container; + if (pred(topAncestor)) { + splitRoot = ancestors[ancestors.length - 2]; + container = topAncestor; + } else { + splitRoot = topAncestor; + container = splitRoot.parentNode; + } + + // if splitRoot is exists, split with splitTree + var pivot = splitRoot && splitTree(splitRoot, point, { + isSkipPaddingBlankHTML: isInline, + isNotSplitEdgePoint: isInline + }); + + // if container is point.node, find pivot with point.offset + if (!pivot && container === point.node) { + pivot = point.node.childNodes[point.offset]; + } + + return { + rightNode: pivot, + container: container + }; + }; + + var create = function (nodeName) { + return document.createElement(nodeName); + }; + + var createText = function (text) { + return document.createTextNode(text); + }; + + /** + * @method remove + * + * remove node, (isRemoveChild: remove child or not) + * + * @param {Node} node + * @param {Boolean} isRemoveChild + */ + var remove = function (node, isRemoveChild) { + if (!node || !node.parentNode) { return; } + if (node.removeNode) { return node.removeNode(isRemoveChild); } + + var parent = node.parentNode; + if (!isRemoveChild) { + var nodes = []; + var i, len; + for (i = 0, len = node.childNodes.length; i < len; i++) { + nodes.push(node.childNodes[i]); + } + + for (i = 0, len = nodes.length; i < len; i++) { + parent.insertBefore(nodes[i], node); + } + } + + parent.removeChild(node); + }; + + /** + * @method removeWhile + * + * @param {Node} node + * @param {Function} pred + */ + var removeWhile = function (node, pred) { + while (node) { + if (isEditable(node) || !pred(node)) { + break; + } + + var parent = node.parentNode; + remove(node); + node = parent; + } + }; + + /** + * @method replace + * + * replace node with provided nodeName + * + * @param {Node} node + * @param {String} nodeName + * @return {Node} - new node + */ + var replace = function (node, nodeName) { + if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) { + return node; + } + + var newNode = create(nodeName); + + if (node.style.cssText) { + newNode.style.cssText = node.style.cssText; + } + + appendChildNodes(newNode, list.from(node.childNodes)); + insertAfter(newNode, node); + remove(node); + + return newNode; + }; + + var isTextarea = makePredByNodeName('TEXTAREA'); + + /** + * @param {jQuery} $node + * @param {Boolean} [stripLinebreaks] - default: false + */ + var value = function ($node, stripLinebreaks) { + var val = isTextarea($node[0]) ? $node.val() : $node.html(); + if (stripLinebreaks) { + return val.replace(/[\n\r]/g, ''); + } + return val; + }; + + /** + * @method html + * + * get the HTML contents of node + * + * @param {jQuery} $node + * @param {Boolean} [isNewlineOnBlock] + */ + var html = function ($node, isNewlineOnBlock) { + var markup = value($node); + + if (isNewlineOnBlock) { + var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g; + markup = markup.replace(regexTag, function (match, endSlash, name) { + name = name.toUpperCase(); + var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && + !!endSlash; + var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name); + + return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : ''); + }); + markup = $.trim(markup); + } + + return markup; + }; + + return { + /** @property {String} NBSP_CHAR */ + NBSP_CHAR: NBSP_CHAR, + /** @property {String} ZERO_WIDTH_NBSP_CHAR */ + ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR, + /** @property {String} blank */ + blank: blankHTML, + /** @property {String} emptyPara */ + emptyPara: '

' + blankHTML + '

', + makePredByNodeName: makePredByNodeName, + isEditable: isEditable, + isControlSizing: isControlSizing, + buildLayoutInfo: buildLayoutInfo, + makeLayoutInfo: makeLayoutInfo, + isText: isText, + isVoid: isVoid, + isPara: isPara, + isPurePara: isPurePara, + isInline: isInline, + isBlock: func.not(isInline), + isBodyInline: isBodyInline, + isBody: isBody, + isParaInline: isParaInline, + isList: isList, + isTable: isTable, + isCell: isCell, + isBlockquote: isBlockquote, + isBodyContainer: isBodyContainer, + isAnchor: isAnchor, + isDiv: makePredByNodeName('DIV'), + isLi: isLi, + isBR: makePredByNodeName('BR'), + isSpan: makePredByNodeName('SPAN'), + isB: makePredByNodeName('B'), + isU: makePredByNodeName('U'), + isS: makePredByNodeName('S'), + isI: makePredByNodeName('I'), + isImg: makePredByNodeName('IMG'), + isTextarea: isTextarea, + isEmpty: isEmpty, + isEmptyAnchor: func.and(isAnchor, isEmpty), + isClosestSibling: isClosestSibling, + withClosestSiblings: withClosestSiblings, + nodeLength: nodeLength, + isLeftEdgePoint: isLeftEdgePoint, + isRightEdgePoint: isRightEdgePoint, + isEdgePoint: isEdgePoint, + isLeftEdgeOf: isLeftEdgeOf, + isRightEdgeOf: isRightEdgeOf, + prevPoint: prevPoint, + nextPoint: nextPoint, + isSamePoint: isSamePoint, + isVisiblePoint: isVisiblePoint, + prevPointUntil: prevPointUntil, + nextPointUntil: nextPointUntil, + isCharPoint: isCharPoint, + walkPoint: walkPoint, + ancestor: ancestor, + singleChildAncestor: singleChildAncestor, + listAncestor: listAncestor, + lastAncestor: lastAncestor, + listNext: listNext, + listPrev: listPrev, + listDescendant: listDescendant, + commonAncestor: commonAncestor, + wrap: wrap, + insertAfter: insertAfter, + appendChildNodes: appendChildNodes, + position: position, + hasChildren: hasChildren, + makeOffsetPath: makeOffsetPath, + fromOffsetPath: fromOffsetPath, + splitTree: splitTree, + splitPoint: splitPoint, + create: create, + createText: createText, + remove: remove, + removeWhile: removeWhile, + replace: replace, + html: html, + value: value + }; + })(); + + + var range = (function () { + + /** + * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js + * + * @param {TextRange} textRange + * @param {Boolean} isStart + * @return {BoundaryPoint} + * + * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx + */ + var textRangeToPoint = function (textRange, isStart) { + var container = textRange.parentElement(), offset; + + var tester = document.body.createTextRange(), prevContainer; + var childNodes = list.from(container.childNodes); + for (offset = 0; offset < childNodes.length; offset++) { + if (dom.isText(childNodes[offset])) { + continue; + } + tester.moveToElementText(childNodes[offset]); + if (tester.compareEndPoints('StartToStart', textRange) >= 0) { + break; + } + prevContainer = childNodes[offset]; + } + + if (offset !== 0 && dom.isText(childNodes[offset - 1])) { + var textRangeStart = document.body.createTextRange(), curTextNode = null; + textRangeStart.moveToElementText(prevContainer || container); + textRangeStart.collapse(!prevContainer); + curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild; + + var pointTester = textRange.duplicate(); + pointTester.setEndPoint('StartToStart', textRangeStart); + var textCount = pointTester.text.replace(/[\r\n]/g, '').length; + + while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) { + textCount -= curTextNode.nodeValue.length; + curTextNode = curTextNode.nextSibling; + } + + /* jshint ignore:start */ + var dummy = curTextNode.nodeValue; // enforce IE to re-reference curTextNode, hack + /* jshint ignore:end */ + + if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && + textCount === curTextNode.nodeValue.length) { + textCount -= curTextNode.nodeValue.length; + curTextNode = curTextNode.nextSibling; + } + + container = curTextNode; + offset = textCount; + } + + return { + cont: container, + offset: offset + }; + }; + + /** + * return TextRange from boundary point (inspired by google closure-library) + * @param {BoundaryPoint} point + * @return {TextRange} + */ + var pointToTextRange = function (point) { + var textRangeInfo = function (container, offset) { + var node, isCollapseToStart; + + if (dom.isText(container)) { + var prevTextNodes = dom.listPrev(container, func.not(dom.isText)); + var prevContainer = list.last(prevTextNodes).previousSibling; + node = prevContainer || container.parentNode; + offset += list.sum(list.tail(prevTextNodes), dom.nodeLength); + isCollapseToStart = !prevContainer; + } else { + node = container.childNodes[offset] || container; + if (dom.isText(node)) { + return textRangeInfo(node, 0); + } + + offset = 0; + isCollapseToStart = false; + } + + return { + node: node, + collapseToStart: isCollapseToStart, + offset: offset + }; + }; + + var textRange = document.body.createTextRange(); + var info = textRangeInfo(point.node, point.offset); + + textRange.moveToElementText(info.node); + textRange.collapse(info.collapseToStart); + textRange.moveStart('character', info.offset); + return textRange; + }; + + /** + * Wrapped Range + * + * @constructor + * @param {Node} sc - start container + * @param {Number} so - start offset + * @param {Node} ec - end container + * @param {Number} eo - end offset + */ + var WrappedRange = function (sc, so, ec, eo) { + this.sc = sc; + this.so = so; + this.ec = ec; + this.eo = eo; + + // nativeRange: get nativeRange from sc, so, ec, eo + var nativeRange = function () { + if (agent.isW3CRangeSupport) { + var w3cRange = document.createRange(); + w3cRange.setStart(sc, so); + w3cRange.setEnd(ec, eo); + + return w3cRange; + } else { + var textRange = pointToTextRange({ + node: sc, + offset: so + }); + + textRange.setEndPoint('EndToEnd', pointToTextRange({ + node: ec, + offset: eo + })); + + return textRange; + } + }; + + this.getPoints = function () { + return { + sc: sc, + so: so, + ec: ec, + eo: eo + }; + }; + + this.getStartPoint = function () { + return { + node: sc, + offset: so + }; + }; + + this.getEndPoint = function () { + return { + node: ec, + offset: eo + }; + }; + + /** + * select update visible range + */ + this.select = function () { + var nativeRng = nativeRange(); + if (agent.isW3CRangeSupport) { + var selection = document.getSelection(); + if (selection.rangeCount > 0) { + selection.removeAllRanges(); + } + selection.addRange(nativeRng); + } else { + nativeRng.select(); + } + + return this; + }; + + /** + * @return {WrappedRange} + */ + this.normalize = function () { + + /** + * @param {BoundaryPoint} point + * @return {BoundaryPoint} + */ + var getVisiblePoint = function (point) { + if (!dom.isVisiblePoint(point)) { + if (dom.isLeftEdgePoint(point)) { + point = dom.nextPointUntil(point, dom.isVisiblePoint); + } else { + point = dom.prevPointUntil(point, dom.isVisiblePoint); + } + } + return point; + }; + + var startPoint = getVisiblePoint(this.getStartPoint()); + var endPoint = getVisiblePoint(this.getEndPoint()); + + return new WrappedRange( + startPoint.node, + startPoint.offset, + endPoint.node, + endPoint.offset + ); + }; + + /** + * returns matched nodes on range + * + * @param {Function} [pred] - predicate function + * @param {Object} [options] + * @param {Boolean} [options.includeAncestor] + * @param {Boolean} [options.fullyContains] + * @return {Node[]} + */ + this.nodes = function (pred, options) { + pred = pred || func.ok; + + var includeAncestor = options && options.includeAncestor; + var fullyContains = options && options.fullyContains; + + // TODO compare points and sort + var startPoint = this.getStartPoint(); + var endPoint = this.getEndPoint(); + + var nodes = []; + var leftEdgeNodes = []; + + dom.walkPoint(startPoint, endPoint, function (point) { + if (dom.isEditable(point.node)) { + return; + } + + var node; + if (fullyContains) { + if (dom.isLeftEdgePoint(point)) { + leftEdgeNodes.push(point.node); + } + if (dom.isRightEdgePoint(point) && list.contains(leftEdgeNodes, point.node)) { + node = point.node; + } + } else if (includeAncestor) { + node = dom.ancestor(point.node, pred); + } else { + node = point.node; + } + + if (node && pred(node)) { + nodes.push(node); + } + }, true); + + return list.unique(nodes); + }; + + /** + * returns commonAncestor of range + * @return {Element} - commonAncestor + */ + this.commonAncestor = function () { + return dom.commonAncestor(sc, ec); + }; + + /** + * returns expanded range by pred + * + * @param {Function} pred - predicate function + * @return {WrappedRange} + */ + this.expand = function (pred) { + var startAncestor = dom.ancestor(sc, pred); + var endAncestor = dom.ancestor(ec, pred); + + if (!startAncestor && !endAncestor) { + return new WrappedRange(sc, so, ec, eo); + } + + var boundaryPoints = this.getPoints(); + + if (startAncestor) { + boundaryPoints.sc = startAncestor; + boundaryPoints.so = 0; + } + + if (endAncestor) { + boundaryPoints.ec = endAncestor; + boundaryPoints.eo = dom.nodeLength(endAncestor); + } + + return new WrappedRange( + boundaryPoints.sc, + boundaryPoints.so, + boundaryPoints.ec, + boundaryPoints.eo + ); + }; + + /** + * @param {Boolean} isCollapseToStart + * @return {WrappedRange} + */ + this.collapse = function (isCollapseToStart) { + if (isCollapseToStart) { + return new WrappedRange(sc, so, sc, so); + } else { + return new WrappedRange(ec, eo, ec, eo); + } + }; + + /** + * splitText on range + */ + this.splitText = function () { + var isSameContainer = sc === ec; + var boundaryPoints = this.getPoints(); + + if (dom.isText(ec) && !dom.isEdgePoint(this.getEndPoint())) { + ec.splitText(eo); + } + + if (dom.isText(sc) && !dom.isEdgePoint(this.getStartPoint())) { + boundaryPoints.sc = sc.splitText(so); + boundaryPoints.so = 0; + + if (isSameContainer) { + boundaryPoints.ec = boundaryPoints.sc; + boundaryPoints.eo = eo - so; + } + } + + return new WrappedRange( + boundaryPoints.sc, + boundaryPoints.so, + boundaryPoints.ec, + boundaryPoints.eo + ); + }; + + /** + * delete contents on range + * @return {WrappedRange} + */ + this.deleteContents = function () { + if (this.isCollapsed()) { + return this; + } + + var rng = this.splitText(); + var nodes = rng.nodes(null, { + fullyContains: true + }); + + // find new cursor point + var point = dom.prevPointUntil(rng.getStartPoint(), function (point) { + return !list.contains(nodes, point.node); + }); + + var emptyParents = []; + $.each(nodes, function (idx, node) { + // find empty parents + var parent = node.parentNode; + if (point.node !== parent && dom.nodeLength(parent) === 1) { + emptyParents.push(parent); + } + dom.remove(node, false); + }); + + // remove empty parents + $.each(emptyParents, function (idx, node) { + dom.remove(node, false); + }); + + return new WrappedRange( + point.node, + point.offset, + point.node, + point.offset + ).normalize(); + }; + + /** + * makeIsOn: return isOn(pred) function + */ + var makeIsOn = function (pred) { + return function () { + var ancestor = dom.ancestor(sc, pred); + return !!ancestor && (ancestor === dom.ancestor(ec, pred)); + }; + }; + + // isOnEditable: judge whether range is on editable or not + this.isOnEditable = makeIsOn(dom.isEditable); + // isOnList: judge whether range is on list node or not + this.isOnList = makeIsOn(dom.isList); + // isOnAnchor: judge whether range is on anchor node or not + this.isOnAnchor = makeIsOn(dom.isAnchor); + // isOnAnchor: judge whether range is on cell node or not + this.isOnCell = makeIsOn(dom.isCell); + + /** + * @param {Function} pred + * @return {Boolean} + */ + this.isLeftEdgeOf = function (pred) { + if (!dom.isLeftEdgePoint(this.getStartPoint())) { + return false; + } + + var node = dom.ancestor(this.sc, pred); + return node && dom.isLeftEdgeOf(this.sc, node); + }; + + /** + * returns whether range was collapsed or not + */ + this.isCollapsed = function () { + return sc === ec && so === eo; + }; + + /** + * wrap inline nodes which children of body with paragraph + * + * @return {WrappedRange} + */ + this.wrapBodyInlineWithPara = function () { + if (dom.isBodyContainer(sc) && dom.isEmpty(sc)) { + sc.innerHTML = dom.emptyPara; + return new WrappedRange(sc.firstChild, 0, sc.firstChild, 0); + } + + if (dom.isParaInline(sc) || dom.isPara(sc)) { + return this.normalize(); + } + + // find inline top ancestor + var topAncestor; + if (dom.isInline(sc)) { + var ancestors = dom.listAncestor(sc, func.not(dom.isInline)); + topAncestor = list.last(ancestors); + if (!dom.isInline(topAncestor)) { + topAncestor = ancestors[ancestors.length - 2] || sc.childNodes[so]; + } + } else { + topAncestor = sc.childNodes[so > 0 ? so - 1 : 0]; + } + + // siblings not in paragraph + var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse(); + inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); + + // wrap with paragraph + if (inlineSiblings.length) { + var para = dom.wrap(list.head(inlineSiblings), 'p'); + dom.appendChildNodes(para, list.tail(inlineSiblings)); + } + + return this.normalize(); + }; + + /** + * insert node at current cursor + * + * @param {Node} node + * @return {Node} + */ + this.insertNode = function (node) { + var rng = this.wrapBodyInlineWithPara().deleteContents(); + var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node)); + + if (info.rightNode) { + info.rightNode.parentNode.insertBefore(node, info.rightNode); + } else { + info.container.appendChild(node); + } + + return node; + }; + + /** + * insert html at current cursor + */ + this.pasteHTML = function (markup) { + var self = this; + var contentsContainer = $('
').html(markup)[0]; + var childNodes = list.from(contentsContainer.childNodes); + + this.wrapBodyInlineWithPara().deleteContents(); + + return $.map(childNodes.reverse(), function (childNode) { + return self.insertNode(childNode); + }).reverse(); + }; + + /** + * returns text in range + * + * @return {String} + */ + this.toString = function () { + var nativeRng = nativeRange(); + return agent.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text; + }; + + /** + * returns range for word before cursor + * + * @param {Boolean} [findAfter] - find after cursor, default: false + * @return {WrappedRange} + */ + this.getWordRange = function (findAfter) { + var endPoint = this.getEndPoint(); + + if (!dom.isCharPoint(endPoint)) { + return this; + } + + var startPoint = dom.prevPointUntil(endPoint, function (point) { + return !dom.isCharPoint(point); + }); + + if (findAfter) { + endPoint = dom.nextPointUntil(endPoint, function (point) { + return !dom.isCharPoint(point); + }); + } + + return new WrappedRange( + startPoint.node, + startPoint.offset, + endPoint.node, + endPoint.offset + ); + }; + + /** + * create offsetPath bookmark + * + * @param {Node} editable + */ + this.bookmark = function (editable) { + return { + s: { + path: dom.makeOffsetPath(editable, sc), + offset: so + }, + e: { + path: dom.makeOffsetPath(editable, ec), + offset: eo + } + }; + }; + + /** + * create offsetPath bookmark base on paragraph + * + * @param {Node[]} paras + */ + this.paraBookmark = function (paras) { + return { + s: { + path: list.tail(dom.makeOffsetPath(list.head(paras), sc)), + offset: so + }, + e: { + path: list.tail(dom.makeOffsetPath(list.last(paras), ec)), + offset: eo + } + }; + }; + + /** + * getClientRects + * @return {Rect[]} + */ + this.getClientRects = function () { + var nativeRng = nativeRange(); + return nativeRng.getClientRects(); + }; + }; + + /** + * @class core.range + * + * Data structure + * * BoundaryPoint: a point of dom tree + * * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range + * + * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position + * + * @singleton + * @alternateClassName range + */ + return { + /** + * @method + * + * create Range Object From arguments or Browser Selection + * + * @param {Node} sc - start container + * @param {Number} so - start offset + * @param {Node} ec - end container + * @param {Number} eo - end offset + * @return {WrappedRange} + */ + create : function (sc, so, ec, eo) { + if (!arguments.length) { // from Browser Selection + if (agent.isW3CRangeSupport) { + var selection = document.getSelection(); + if (selection.rangeCount === 0) { + return null; + } else if (dom.isBody(selection.anchorNode)) { + // Firefox: returns entire body as range on initialization. We won't never need it. + return null; + } + + var nativeRng = selection.getRangeAt(0); + sc = nativeRng.startContainer; + so = nativeRng.startOffset; + ec = nativeRng.endContainer; + eo = nativeRng.endOffset; + } else { // IE8: TextRange + var textRange = document.selection.createRange(); + var textRangeEnd = textRange.duplicate(); + textRangeEnd.collapse(false); + var textRangeStart = textRange; + textRangeStart.collapse(true); + + var startPoint = textRangeToPoint(textRangeStart, true), + endPoint = textRangeToPoint(textRangeEnd, false); + + // same visible point case: range was collapsed. + if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && + dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && + endPoint.node.nextSibling === startPoint.node) { + startPoint = endPoint; + } + + sc = startPoint.cont; + so = startPoint.offset; + ec = endPoint.cont; + eo = endPoint.offset; + } + } else if (arguments.length === 2) { //collapsed + ec = sc; + eo = so; + } + return new WrappedRange(sc, so, ec, eo); + }, + + /** + * @method + * + * create WrappedRange from node + * + * @param {Node} node + * @return {WrappedRange} + */ + createFromNode: function (node) { + var sc = node; + var so = 0; + var ec = node; + var eo = dom.nodeLength(ec); + + // browsers can't target a picture or void node + if (dom.isVoid(sc)) { + so = dom.listPrev(sc).length - 1; + sc = sc.parentNode; + } + if (dom.isBR(ec)) { + eo = dom.listPrev(ec).length - 1; + ec = ec.parentNode; + } else if (dom.isVoid(ec)) { + eo = dom.listPrev(ec).length; + ec = ec.parentNode; + } + + return this.create(sc, so, ec, eo); + }, + + /** + * @method + * + * create WrappedRange from bookmark + * + * @param {Node} editable + * @param {Object} bookmark + * @return {WrappedRange} + */ + createFromBookmark : function (editable, bookmark) { + var sc = dom.fromOffsetPath(editable, bookmark.s.path); + var so = bookmark.s.offset; + var ec = dom.fromOffsetPath(editable, bookmark.e.path); + var eo = bookmark.e.offset; + return new WrappedRange(sc, so, ec, eo); + }, + + /** + * @method + * + * create WrappedRange from paraBookmark + * + * @param {Object} bookmark + * @param {Node[]} paras + * @return {WrappedRange} + */ + createFromParaBookmark: function (bookmark, paras) { + var so = bookmark.s.offset; + var eo = bookmark.e.offset; + var sc = dom.fromOffsetPath(list.head(paras), bookmark.s.path); + var ec = dom.fromOffsetPath(list.last(paras), bookmark.e.path); + + return new WrappedRange(sc, so, ec, eo); + } + }; + })(); + + /** + * @class defaults + * + * @singleton + */ + var defaults = { + /** @property */ + version: '0.6.6', + + /** + * + * for event options, reference to EventHandler.attach + * + * @property {Object} options + * @property {String/Number} [options.width=null] set editor width + * @property {String/Number} [options.height=null] set editor height, ex) 300 + * @property {String/Number} options.minHeight set minimum height of editor + * @property {String/Number} options.maxHeight + * @property {String/Number} options.focus + * @property {Number} options.tabsize + * @property {Boolean} options.styleWithSpan + * @property {Object} options.codemirror + * @property {Object} [options.codemirror.mode='text/html'] + * @property {Object} [options.codemirror.htmlMode=true] + * @property {Object} [options.codemirror.lineNumbers=true] + * @property {String} [options.lang=en-US] language 'en-US', 'ko-KR', ... + * @property {String} [options.direction=null] text direction, ex) 'rtl' + * @property {Array} [options.toolbar] + * @property {Boolean} [options.airMode=false] + * @property {Array} [options.airPopover] + * @property {Fucntion} [options.onInit] initialize + * @property {Fucntion} [options.onsubmit] + */ + options: { + width: null, // set editor width + height: null, // set editor height, ex) 300 + + minHeight: null, // set minimum height of editor + maxHeight: null, // set maximum height of editor + + focus: false, // set focus to editable area after initializing summernote + + tabsize: 4, // size of tab ex) 2 or 4 + styleWithSpan: true, // style with span (Chrome and FF only) + + disableLinkTarget: false, // hide link Target Checkbox + disableDragAndDrop: false, // disable drag and drop event + disableResizeEditor: false, // disable resizing editor + + shortcuts: true, // enable keyboard shortcuts + + placeholder: false, // enable placeholder text + prettifyHtml: true, // enable prettifying html while toggling codeview + + iconPrefix: 'fa fa-', // prefix for css icon classes + + codemirror: { // codemirror options + mode: 'text/html', + htmlMode: true, + lineNumbers: true + }, + + // language + lang: 'en-US', // language 'en-US', 'ko-KR', ... + direction: null, // text direction, ex) 'rtl' + + // toolbar + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'italic', 'underline', 'clear']], + // ['font', ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear']], + ['fontname', ['fontname']], + // ['fontsize', ['fontsize']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['height', ['height']], + ['table', ['table']], + ['insert', ['link', 'picture', 'hr']], + ['view', ['fullscreen', 'codeview']], + ['help', ['help']] + ], + + // air mode: inline editor + airMode: false, + // airPopover: [ + // ['style', ['style']], + // ['font', ['bold', 'italic', 'underline', 'clear']], + // ['fontname', ['fontname']], + // ['color', ['color']], + // ['para', ['ul', 'ol', 'paragraph']], + // ['height', ['height']], + // ['table', ['table']], + // ['insert', ['link', 'picture']], + // ['help', ['help']] + // ], + airPopover: [ + ['color', ['color']], + ['font', ['bold', 'underline', 'clear']], + ['para', ['ul', 'paragraph']], + ['table', ['table']], + ['insert', ['link', 'picture']] + ], + + // style tag + styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'], + + // default fontName + defaultFontName: 'Helvetica Neue', + + // fontName + fontNames: [ + 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', + 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', + 'Tahoma', 'Times New Roman', 'Verdana' + ], + fontNamesIgnoreCheck: [], + + fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'], + + // pallete colors(n x n) + colors: [ + ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'], + ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'], + ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'], + ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'], + ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'], + ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'], + ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'], + ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031'] + ], + + // lineHeight + lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'], + + // insertTable max size + insertTableMaxSize: { + col: 10, + row: 10 + }, + + // image + maximumImageFileSize: null, // size in bytes, null = no limit + + // callbacks + oninit: null, // initialize + onfocus: null, // editable has focus + onblur: null, // editable out of focus + onenter: null, // enter key pressed + onkeyup: null, // keyup + onkeydown: null, // keydown + onImageUpload: null, // imageUpload + onImageUploadError: null, // imageUploadError + onMediaDelete: null, // media delete + onToolbarClick: null, + onsubmit: null, + + /** + * manipulate link address when user create link + * @param {String} sLinkUrl + * @return {String} + */ + onCreateLink: function (sLinkUrl) { + if (sLinkUrl.indexOf('@') !== -1 && sLinkUrl.indexOf(':') === -1) { + sLinkUrl = 'mailto:' + sLinkUrl; + } else if (sLinkUrl.indexOf('://') === -1) { + sLinkUrl = 'http://' + sLinkUrl; + } + + return sLinkUrl; + }, + + keyMap: { + pc: { + 'ENTER': 'insertParagraph', + 'CTRL+Z': 'undo', + 'CTRL+Y': 'redo', + 'TAB': 'tab', + 'SHIFT+TAB': 'untab', + 'CTRL+B': 'bold', + 'CTRL+I': 'italic', + 'CTRL+U': 'underline', + 'CTRL+SHIFT+S': 'strikethrough', + 'CTRL+BACKSLASH': 'removeFormat', + 'CTRL+SHIFT+L': 'justifyLeft', + 'CTRL+SHIFT+E': 'justifyCenter', + 'CTRL+SHIFT+R': 'justifyRight', + 'CTRL+SHIFT+J': 'justifyFull', + 'CTRL+SHIFT+NUM7': 'insertUnorderedList', + 'CTRL+SHIFT+NUM8': 'insertOrderedList', + 'CTRL+LEFTBRACKET': 'outdent', + 'CTRL+RIGHTBRACKET': 'indent', + 'CTRL+NUM0': 'formatPara', + 'CTRL+NUM1': 'formatH1', + 'CTRL+NUM2': 'formatH2', + 'CTRL+NUM3': 'formatH3', + 'CTRL+NUM4': 'formatH4', + 'CTRL+NUM5': 'formatH5', + 'CTRL+NUM6': 'formatH6', + 'CTRL+ENTER': 'insertHorizontalRule', + 'CTRL+K': 'showLinkDialog' + }, + + mac: { + 'ENTER': 'insertParagraph', + 'CMD+Z': 'undo', + 'CMD+SHIFT+Z': 'redo', + 'TAB': 'tab', + 'SHIFT+TAB': 'untab', + 'CMD+B': 'bold', + 'CMD+I': 'italic', + 'CMD+U': 'underline', + 'CMD+SHIFT+S': 'strikethrough', + 'CMD+BACKSLASH': 'removeFormat', + 'CMD+SHIFT+L': 'justifyLeft', + 'CMD+SHIFT+E': 'justifyCenter', + 'CMD+SHIFT+R': 'justifyRight', + 'CMD+SHIFT+J': 'justifyFull', + 'CMD+SHIFT+NUM7': 'insertUnorderedList', + 'CMD+SHIFT+NUM8': 'insertOrderedList', + 'CMD+LEFTBRACKET': 'outdent', + 'CMD+RIGHTBRACKET': 'indent', + 'CMD+NUM0': 'formatPara', + 'CMD+NUM1': 'formatH1', + 'CMD+NUM2': 'formatH2', + 'CMD+NUM3': 'formatH3', + 'CMD+NUM4': 'formatH4', + 'CMD+NUM5': 'formatH5', + 'CMD+NUM6': 'formatH6', + 'CMD+ENTER': 'insertHorizontalRule', + 'CMD+K': 'showLinkDialog' + } + } + }, + + // default language: en-US + lang: { + 'en-US': { + font: { + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + clear: 'Remove Font Style', + height: 'Line Height', + name: 'Font Family', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Font Size' + }, + image: { + image: 'Picture', + insert: 'Insert Image', + resizeFull: 'Resize Full', + resizeHalf: 'Resize Half', + resizeQuarter: 'Resize Quarter', + floatLeft: 'Float Left', + floatRight: 'Float Right', + floatNone: 'Float None', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Drag image or text here', + dropImage: 'Drop image or Text', + selectFromFiles: 'Select from files', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Image URL', + remove: 'Remove Image' + }, + link: { + link: 'Link', + insert: 'Insert Link', + unlink: 'Unlink', + edit: 'Edit', + textToDisplay: 'Text to display', + url: 'To what URL should this link go?', + openInNewWindow: 'Open in new window' + }, + table: { + table: 'Table' + }, + hr: { + insert: 'Insert Horizontal Rule' + }, + style: { + style: 'Style', + normal: 'Normal', + blockquote: 'Quote', + pre: 'Code', + h1: 'Header 1', + h2: 'Header 2', + h3: 'Header 3', + h4: 'Header 4', + h5: 'Header 5', + h6: 'Header 6' + }, + lists: { + unordered: 'Unordered list', + ordered: 'Ordered list' + }, + options: { + help: 'Help', + fullscreen: 'Full Screen', + codeview: 'Code View' + }, + paragraph: { + paragraph: 'Paragraph', + outdent: 'Outdent', + indent: 'Indent', + left: 'Align left', + center: 'Align center', + right: 'Align right', + justify: 'Justify full' + }, + color: { + recent: 'Recent Color', + more: 'More Color', + background: 'Background Color', + foreground: 'Foreground Color', + transparent: 'Transparent', + setTransparent: 'Set transparent', + reset: 'Reset', + resetToDefault: 'Reset to default' + }, + shortcut: { + shortcuts: 'Keyboard shortcuts', + close: 'Close', + textFormatting: 'Text formatting', + action: 'Action', + paragraphFormatting: 'Paragraph formatting', + documentStyle: 'Document Style', + extraKeys: 'Extra keys' + }, + history: { + undo: 'Undo', + redo: 'Redo' + } + } + } + }; + + /** + * @class core.async + * + * Async functions which returns `Promise` + * + * @singleton + * @alternateClassName async + */ + var async = (function () { + /** + * @method readFileAsDataURL + * + * read contents of file as representing URL + * + * @param {File} file + * @return {Promise} - then: sDataUrl + */ + var readFileAsDataURL = function (file) { + return $.Deferred(function (deferred) { + $.extend(new FileReader(), { + onload: function (e) { + var sDataURL = e.target.result; + deferred.resolve(sDataURL); + }, + onerror: function () { + deferred.reject(this); + } + }).readAsDataURL(file); + }).promise(); + }; + + /** + * @method createImage + * + * create `` from url string + * + * @param {String} sUrl + * @param {String} filename + * @return {Promise} - then: $image + */ + var createImage = function (sUrl, filename) { + return $.Deferred(function (deferred) { + var $img = $(''); + + $img.one('load', function () { + $img.off('error abort'); + deferred.resolve($img); + }).one('error abort', function () { + $img.off('load').detach(); + deferred.reject($img); + }).css({ + display: 'none' + }).appendTo(document.body).attr({ + 'src': sUrl, + 'data-filename': filename + }); + }).promise(); + }; + + return { + readFileAsDataURL: readFileAsDataURL, + createImage: createImage + }; + })(); + + /** + * @class core.key + * + * Object for keycodes. + * + * @singleton + * @alternateClassName key + */ + var key = (function () { + var keyMap = { + 'BACKSPACE': 8, + 'TAB': 9, + 'ENTER': 13, + 'SPACE': 32, + + // Number: 0-9 + 'NUM0': 48, + 'NUM1': 49, + 'NUM2': 50, + 'NUM3': 51, + 'NUM4': 52, + 'NUM5': 53, + 'NUM6': 54, + 'NUM7': 55, + 'NUM8': 56, + + // Alphabet: a-z + 'B': 66, + 'E': 69, + 'I': 73, + 'J': 74, + 'K': 75, + 'L': 76, + 'R': 82, + 'S': 83, + 'U': 85, + 'Y': 89, + 'Z': 90, + + 'SLASH': 191, + 'LEFTBRACKET': 219, + 'BACKSLASH': 220, + 'RIGHTBRACKET': 221 + }; + + return { + /** + * @method isEdit + * + * @param {Number} keyCode + * @return {Boolean} + */ + isEdit: function (keyCode) { + return list.contains([8, 9, 13, 32], keyCode); + }, + /** + * @property {Object} nameFromCode + * @property {String} nameFromCode.8 "BACKSPACE" + */ + nameFromCode: func.invertObject(keyMap), + code: keyMap + }; + })(); + + /** + * @class editing.History + * + * Editor History + * + */ + var History = function ($editable) { + var stack = [], stackOffset = -1; + var editable = $editable[0]; + + var makeSnapshot = function () { + var rng = range.create(); + var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}}; + + return { + contents: $editable.html(), + bookmark: (rng ? rng.bookmark(editable) : emptyBookmark) + }; + }; + + var applySnapshot = function (snapshot) { + if (snapshot.contents !== null) { + $editable.html(snapshot.contents); + } + if (snapshot.bookmark !== null) { + range.createFromBookmark(editable, snapshot.bookmark).select(); + } + }; + + /** + * undo + */ + this.undo = function () { + if (0 < stackOffset) { + stackOffset--; + applySnapshot(stack[stackOffset]); + } + }; + + /** + * redo + */ + this.redo = function () { + if (stack.length - 1 > stackOffset) { + stackOffset++; + applySnapshot(stack[stackOffset]); + } + }; + + /** + * recorded undo + */ + this.recordUndo = function () { + stackOffset++; + + // Wash out stack after stackOffset + if (stack.length > stackOffset) { + stack = stack.slice(0, stackOffset); + } + + // Create new snapshot and push it to the end + stack.push(makeSnapshot()); + }; + + // Create first undo stack + this.recordUndo(); + }; + + /** + * @class editing.Style + * + * Style + * + */ + var Style = function () { + /** + * @method jQueryCSS + * + * [workaround] for old jQuery + * passing an array of style properties to .css() + * will result in an object of property-value pairs. + * (compability with version < 1.9) + * + * @private + * @param {jQuery} $obj + * @param {Array} propertyNames - An array of one or more CSS properties. + * @return {Object} + */ + var jQueryCSS = function ($obj, propertyNames) { + if (agent.jqueryVersion < 1.9) { + var result = {}; + $.each(propertyNames, function (idx, propertyName) { + result[propertyName] = $obj.css(propertyName); + }); + return result; + } + return $obj.css.call($obj, propertyNames); + }; + + /** + * paragraph level style + * + * @param {WrappedRange} rng + * @param {Object} styleInfo + */ + this.stylePara = function (rng, styleInfo) { + $.each(rng.nodes(dom.isPara, { + includeAncestor: true + }), function (idx, para) { + $(para).css(styleInfo); + }); + }; + + /** + * insert and returns styleNodes on range. + * + * @param {WrappedRange} rng + * @param {Object} [options] - options for styleNodes + * @param {String} [options.nodeName] - default: `SPAN` + * @param {Boolean} [options.expandClosestSibling] - default: `false` + * @param {Boolean} [options.onlyPartialContains] - default: `false` + * @return {Node[]} + */ + this.styleNodes = function (rng, options) { + rng = rng.splitText(); + + var nodeName = options && options.nodeName || 'SPAN'; + var expandClosestSibling = !!(options && options.expandClosestSibling); + var onlyPartialContains = !!(options && options.onlyPartialContains); + + if (rng.isCollapsed()) { + return rng.insertNode(dom.create(nodeName)); + } + + var pred = dom.makePredByNodeName(nodeName); + var nodes = $.map(rng.nodes(dom.isText, { + fullyContains: true + }), function (text) { + return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName); + }); + + if (expandClosestSibling) { + if (onlyPartialContains) { + var nodesInRange = rng.nodes(); + // compose with partial contains predication + pred = func.and(pred, function (node) { + return list.contains(nodesInRange, node); + }); + } + + return $.map(nodes, function (node) { + var siblings = dom.withClosestSiblings(node, pred); + var head = list.head(siblings); + var tails = list.tail(siblings); + $.each(tails, function (idx, elem) { + dom.appendChildNodes(head, elem.childNodes); + dom.remove(elem); + }); + return list.head(siblings); + }); + } else { + return nodes; + } + }; + + /** + * get current style on cursor + * + * @param {WrappedRange} rng + * @param {Node} target - target element on event + * @return {Object} - object contains style properties. + */ + this.current = function (rng, target) { + var $cont = $(dom.isText(rng.sc) ? rng.sc.parentNode : rng.sc); + var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height']; + var styleInfo = jQueryCSS($cont, properties) || {}; + + styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10); + + // document.queryCommandState for toggle state + styleInfo['font-bold'] = document.queryCommandState('bold') ? 'bold' : 'normal'; + styleInfo['font-italic'] = document.queryCommandState('italic') ? 'italic' : 'normal'; + styleInfo['font-underline'] = document.queryCommandState('underline') ? 'underline' : 'normal'; + styleInfo['font-strikethrough'] = document.queryCommandState('strikeThrough') ? 'strikethrough' : 'normal'; + styleInfo['font-superscript'] = document.queryCommandState('superscript') ? 'superscript' : 'normal'; + styleInfo['font-subscript'] = document.queryCommandState('subscript') ? 'subscript' : 'normal'; + + // list-style-type to list-style(unordered, ordered) + if (!rng.isOnList()) { + styleInfo['list-style'] = 'none'; + } else { + var aOrderedType = ['circle', 'disc', 'disc-leading-zero', 'square']; + var isUnordered = $.inArray(styleInfo['list-style-type'], aOrderedType) > -1; + styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered'; + } + + var para = dom.ancestor(rng.sc, dom.isPara); + if (para && para.style['line-height']) { + styleInfo['line-height'] = para.style.lineHeight; + } else { + var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10); + styleInfo['line-height'] = lineHeight.toFixed(1); + } + + styleInfo.image = dom.isImg(target) && target; + styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor); + styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable); + styleInfo.range = rng; + + return styleInfo; + }; + }; + + + /** + * @class editing.Bullet + * + * @alternateClassName Bullet + */ + var Bullet = function () { + /** + * @method insertOrderedList + * + * toggle ordered list + * + * @type command + */ + this.insertOrderedList = function () { + this.toggleList('OL'); + }; + + /** + * @method insertUnorderedList + * + * toggle unordered list + * + * @type command + */ + this.insertUnorderedList = function () { + this.toggleList('UL'); + }; + + /** + * @method indent + * + * indent + * + * @type command + */ + this.indent = function () { + var self = this; + var rng = range.create().wrapBodyInlineWithPara(); + + var paras = rng.nodes(dom.isPara, { includeAncestor: true }); + var clustereds = list.clusterBy(paras, func.peq2('parentNode')); + + $.each(clustereds, function (idx, paras) { + var head = list.head(paras); + if (dom.isLi(head)) { + self.wrapList(paras, head.parentNode.nodeName); + } else { + $.each(paras, function (idx, para) { + $(para).css('marginLeft', function (idx, val) { + return (parseInt(val, 10) || 0) + 25; + }); + }); + } + }); + + rng.select(); + }; + + /** + * @method outdent + * + * outdent + * + * @type command + */ + this.outdent = function () { + var self = this; + var rng = range.create().wrapBodyInlineWithPara(); + + var paras = rng.nodes(dom.isPara, { includeAncestor: true }); + var clustereds = list.clusterBy(paras, func.peq2('parentNode')); + + $.each(clustereds, function (idx, paras) { + var head = list.head(paras); + if (dom.isLi(head)) { + self.releaseList([paras]); + } else { + $.each(paras, function (idx, para) { + $(para).css('marginLeft', function (idx, val) { + val = (parseInt(val, 10) || 0); + return val > 25 ? val - 25 : ''; + }); + }); + } + }); + + rng.select(); + }; + + /** + * @method toggleList + * + * toggle list + * + * @param {String} listName - OL or UL + */ + this.toggleList = function (listName) { + var self = this; + var rng = range.create().wrapBodyInlineWithPara(); + + var paras = rng.nodes(dom.isPara, { includeAncestor: true }); + var bookmark = rng.paraBookmark(paras); + var clustereds = list.clusterBy(paras, func.peq2('parentNode')); + + // paragraph to list + if (list.find(paras, dom.isPurePara)) { + var wrappedParas = []; + $.each(clustereds, function (idx, paras) { + wrappedParas = wrappedParas.concat(self.wrapList(paras, listName)); + }); + paras = wrappedParas; + // list to paragraph or change list style + } else { + var diffLists = rng.nodes(dom.isList, { + includeAncestor: true + }).filter(function (listNode) { + return !$.nodeName(listNode, listName); + }); + + if (diffLists.length) { + $.each(diffLists, function (idx, listNode) { + dom.replace(listNode, listName); + }); + } else { + paras = this.releaseList(clustereds, true); + } + } + + range.createFromParaBookmark(bookmark, paras).select(); + }; + + /** + * @method wrapList + * + * @param {Node[]} paras + * @param {String} listName + * @return {Node[]} + */ + this.wrapList = function (paras, listName) { + var head = list.head(paras); + var last = list.last(paras); + + var prevList = dom.isList(head.previousSibling) && head.previousSibling; + var nextList = dom.isList(last.nextSibling) && last.nextSibling; + + var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); + + // P to LI + paras = $.map(paras, function (para) { + return dom.isPurePara(para) ? dom.replace(para, 'LI') : para; + }); + + // append to list(
    ,
      ) + dom.appendChildNodes(listNode, paras); + + if (nextList) { + dom.appendChildNodes(listNode, list.from(nextList.childNodes)); + dom.remove(nextList); + } + + return paras; + }; + + /** + * @method releaseList + * + * @param {Array[]} clustereds + * @param {Boolean} isEscapseToBody + * @return {Node[]} + */ + this.releaseList = function (clustereds, isEscapseToBody) { + var releasedParas = []; + + $.each(clustereds, function (idx, paras) { + var head = list.head(paras); + var last = list.last(paras); + + var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : + head.parentNode; + var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, { + node: last.parentNode, + offset: dom.position(last) + 1 + }, { + isSkipPaddingBlankHTML: true + }) : null; + + var middleList = dom.splitTree(headList, { + node: head.parentNode, + offset: dom.position(head) + }, { + isSkipPaddingBlankHTML: true + }); + + paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : + list.from(middleList.childNodes).filter(dom.isLi); + + // LI to P + if (isEscapseToBody || !dom.isList(headList.parentNode)) { + paras = $.map(paras, function (para) { + return dom.replace(para, 'P'); + }); + } + + $.each(list.from(paras).reverse(), function (idx, para) { + dom.insertAfter(para, headList); + }); + + // remove empty lists + var rootLists = list.compact([headList, middleList, lastList]); + $.each(rootLists, function (idx, rootList) { + var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList)); + $.each(listNodes.reverse(), function (idx, listNode) { + if (!dom.nodeLength(listNode)) { + dom.remove(listNode, true); + } + }); + }); + + releasedParas = releasedParas.concat(paras); + }); + + return releasedParas; + }; + }; + + + /** + * @class editing.Typing + * + * Typing + * + */ + var Typing = function () { + + // a Bullet instance to toggle lists off + var bullet = new Bullet(); + + /** + * insert tab + * + * @param {jQuery} $editable + * @param {WrappedRange} rng + * @param {Number} tabsize + */ + this.insertTab = function ($editable, rng, tabsize) { + var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR)); + rng = rng.deleteContents(); + rng.insertNode(tab, true); + + rng = range.create(tab, tabsize); + rng.select(); + }; + + /** + * insert paragraph + */ + this.insertParagraph = function () { + var rng = range.create(); + + // deleteContents on range. + rng = rng.deleteContents(); + + // Wrap range if it needs to be wrapped by paragraph + rng = rng.wrapBodyInlineWithPara(); + + // finding paragraph + var splitRoot = dom.ancestor(rng.sc, dom.isPara); + + var nextPara; + // on paragraph: split paragraph + if (splitRoot) { + // if it is an empty line with li + if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) { + // disable UL/OL and escape! + bullet.toggleList(splitRoot.parentNode.nodeName); + return; + // if new line has content (not a line break) + } else { + nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); + + var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor); + emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor)); + + $.each(emptyAnchors, function (idx, anchor) { + dom.remove(anchor); + }); + } + // no paragraph: insert empty paragraph + } else { + var next = rng.sc.childNodes[rng.so]; + nextPara = $(dom.emptyPara)[0]; + if (next) { + rng.sc.insertBefore(nextPara, next); + } else { + rng.sc.appendChild(nextPara); + } + } + + range.create(nextPara, 0).normalize().select(); + + }; + + }; + + /** + * @class editing.Table + * + * Table + * + */ + var Table = function () { + /** + * handle tab key + * + * @param {WrappedRange} rng + * @param {Boolean} isShift + */ + this.tab = function (rng, isShift) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var table = dom.ancestor(cell, dom.isTable); + var cells = dom.listDescendant(table, dom.isCell); + + var nextCell = list[isShift ? 'prev' : 'next'](cells, cell); + if (nextCell) { + range.create(nextCell, 0).select(); + } + }; + + /** + * create empty table element + * + * @param {Number} rowCount + * @param {Number} colCount + * @return {Node} + */ + this.createTable = function (colCount, rowCount) { + var tds = [], tdHTML; + for (var idxCol = 0; idxCol < colCount; idxCol++) { + tds.push('' + dom.blank + ''); + } + tdHTML = tds.join(''); + + var trs = [], trHTML; + for (var idxRow = 0; idxRow < rowCount; idxRow++) { + trs.push('' + tdHTML + ''); + } + trHTML = trs.join(''); + return $('' + trHTML + '
      ')[0]; + }; + }; + + /** + * @class editing.Editor + * + * Editor + * + */ + var Editor = function (handler) { + + var style = new Style(); + var table = new Table(); + var typing = new Typing(); + var bullet = new Bullet(); + + /** + * @method createRange + * + * create range + * + * @param {jQuery} $editable + * @return {WrappedRange} + */ + this.createRange = function ($editable) { + $editable.focus(); + return range.create(); + }; + + /** + * @method saveRange + * + * save current range + * + * @param {jQuery} $editable + * @param {Boolean} [thenCollapse=false] + */ + this.saveRange = function ($editable, thenCollapse) { + $editable.focus(); + $editable.data('range', range.create()); + if (thenCollapse) { + range.create().collapse().select(); + } + }; + + /** + * @method saveRange + * + * save current node list to $editable.data('childNodes') + * + * @param {jQuery} $editable + */ + this.saveNode = function ($editable) { + // copy child node reference + var copy = []; + for (var key = 0, len = $editable[0].childNodes.length; key < len; key++) { + copy.push($editable[0].childNodes[key]); + } + $editable.data('childNodes', copy); + }; + + /** + * @method restoreRange + * + * restore lately range + * + * @param {jQuery} $editable + */ + this.restoreRange = function ($editable) { + var rng = $editable.data('range'); + if (rng) { + rng.select(); + $editable.focus(); + } + }; + + /** + * @method restoreNode + * + * restore lately node list + * + * @param {jQuery} $editable + */ + this.restoreNode = function ($editable) { + $editable.html(''); + var child = $editable.data('childNodes'); + for (var index = 0, len = child.length; index < len; index++) { + $editable[0].appendChild(child[index]); + } + }; + /** + * @method currentStyle + * + * current style + * + * @param {Node} target + * @return {Boolean} false if range is no + */ + this.currentStyle = function (target) { + var rng = range.create(); + return rng ? rng.isOnEditable() && style.current(rng, target) : false; + }; + + var triggerOnBeforeChange = function ($editable) { + var $holder = dom.makeLayoutInfo($editable).holder(); + handler.bindCustomEvent( + $holder, $editable.data('callbacks'), 'before.command' + )($editable.html(), $editable); + }; + + var triggerOnChange = function ($editable) { + var $holder = dom.makeLayoutInfo($editable).holder(); + handler.bindCustomEvent( + $holder, $editable.data('callbacks'), 'change' + )($editable.html(), $editable); + }; + + /** + * @method undo + * undo + * @param {jQuery} $editable + */ + this.undo = function ($editable) { + triggerOnBeforeChange($editable); + $editable.data('NoteHistory').undo(); + triggerOnChange($editable); + }; + + /** + * @method redo + * redo + * @param {jQuery} $editable + */ + this.redo = function ($editable) { + triggerOnBeforeChange($editable); + $editable.data('NoteHistory').redo(); + triggerOnChange($editable); + }; + + /** + * @method beforeCommand + * before command + * @param {jQuery} $editable + */ + var beforeCommand = this.beforeCommand = function ($editable) { + triggerOnBeforeChange($editable); + }; + + /** + * @method afterCommand + * after command + * @param {jQuery} $editable + * @param {Boolean} isPreventTrigger + */ + var afterCommand = this.afterCommand = function ($editable, isPreventTrigger) { + $editable.data('NoteHistory').recordUndo(); + if (!isPreventTrigger) { + triggerOnChange($editable); + } + }; + + /** + * @method bold + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method italic + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method underline + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method strikethrough + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method formatBlock + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method superscript + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method subscript + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method justifyLeft + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method justifyCenter + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method justifyRight + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method justifyFull + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method formatBlock + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method removeFormat + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method backColor + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method foreColor + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method insertHorizontalRule + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /** + * @method fontName + * + * change font name + * + * @param {jQuery} $editable + * @param {Mixed} value + */ + + /* jshint ignore:start */ + // native commands(with execCommand), generate function for execCommand + var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', + 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', + 'formatBlock', 'removeFormat', + 'backColor', 'foreColor', 'insertHorizontalRule', 'fontName']; + + for (var idx = 0, len = commands.length; idx < len; idx ++) { + this[commands[idx]] = (function (sCmd) { + return function ($editable, value) { + beforeCommand($editable); + + document.execCommand(sCmd, false, value); + + afterCommand($editable, true); + }; + })(commands[idx]); + } + /* jshint ignore:end */ + + /** + * @method tab + * + * handle tab key + * + * @param {jQuery} $editable + * @param {Object} options + */ + this.tab = function ($editable, options) { + var rng = range.create(); + if (rng.isCollapsed() && rng.isOnCell()) { + table.tab(rng); + } else { + beforeCommand($editable); + typing.insertTab($editable, rng, options.tabsize); + afterCommand($editable); + } + }; + + /** + * @method untab + * + * handle shift+tab key + * + */ + this.untab = function () { + var rng = range.create(); + if (rng.isCollapsed() && rng.isOnCell()) { + table.tab(rng, true); + } + }; + + /** + * @method insertParagraph + * + * insert paragraph + * + * @param {Node} $editable + */ + this.insertParagraph = function ($editable) { + beforeCommand($editable); + typing.insertParagraph($editable); + afterCommand($editable); + }; + + /** + * @method insertOrderedList + * + * @param {jQuery} $editable + */ + this.insertOrderedList = function ($editable) { + beforeCommand($editable); + bullet.insertOrderedList($editable); + afterCommand($editable); + }; + + /** + * @param {jQuery} $editable + */ + this.insertUnorderedList = function ($editable) { + beforeCommand($editable); + bullet.insertUnorderedList($editable); + afterCommand($editable); + }; + + /** + * @param {jQuery} $editable + */ + this.indent = function ($editable) { + beforeCommand($editable); + bullet.indent($editable); + afterCommand($editable); + }; + + /** + * @param {jQuery} $editable + */ + this.outdent = function ($editable) { + beforeCommand($editable); + bullet.outdent($editable); + afterCommand($editable); + }; + + /** + * insert image + * + * @param {jQuery} $editable + * @param {String} sUrl + */ + this.insertImage = function ($editable, sUrl, filename) { + async.createImage(sUrl, filename).then(function ($image) { + beforeCommand($editable); + $image.css({ + display: '', + width: Math.min($editable.width(), $image.width()) + }); + range.create().insertNode($image[0]); + range.createFromNode($image[0]).collapse().select(); + afterCommand($editable); + }).fail(function () { + var callbacks = $editable.data('callbacks'); + if (callbacks.onImageUploadError) { + callbacks.onImageUploadError(); + } + }); + }; + + /** + * @method insertNode + * insert node + * @param {Node} $editable + * @param {Node} node + */ + this.insertNode = function ($editable, node) { + beforeCommand($editable); + var rng = this.createRange($editable); + rng.insertNode(node); + range.createFromNode(node).collapse().select(); + afterCommand($editable); + }; + + /** + * insert text + * @param {Node} $editable + * @param {String} text + */ + this.insertText = function ($editable, text) { + beforeCommand($editable); + var rng = this.createRange($editable); + var textNode = rng.insertNode(dom.createText(text)); + range.create(textNode, dom.nodeLength(textNode)).select(); + afterCommand($editable); + }; + + /** + * paste HTML + * @param {Node} $editable + * @param {String} markup + */ + this.pasteHTML = function ($editable, markup) { + beforeCommand($editable); + var rng = this.createRange($editable); + var contents = rng.pasteHTML(markup); + range.createFromNode(list.last(contents)).collapse().select(); + afterCommand($editable); + }; + + /** + * formatBlock + * + * @param {jQuery} $editable + * @param {String} tagName + */ + this.formatBlock = function ($editable, tagName) { + beforeCommand($editable); + // [workaround] for MSIE, IE need `<` + tagName = agent.isMSIE ? '<' + tagName + '>' : tagName; + document.execCommand('FormatBlock', false, tagName); + afterCommand($editable); + }; + + this.formatPara = function ($editable) { + beforeCommand($editable); + this.formatBlock($editable, 'P'); + afterCommand($editable); + }; + + /* jshint ignore:start */ + for (var idx = 1; idx <= 6; idx ++) { + this['formatH' + idx] = function (idx) { + return function ($editable) { + this.formatBlock($editable, 'H' + idx); + }; + }(idx); + }; + /* jshint ignore:end */ + + /** + * fontSize + * + * @param {jQuery} $editable + * @param {String} value - px + */ + this.fontSize = function ($editable, value) { + beforeCommand($editable); + + var rng = this.createRange($editable); + var spans = style.styleNodes(rng); + $.each(spans, function (idx, span) { + $(span).css({ + 'font-size': value + 'px' + }); + }); + + afterCommand($editable); + }; + + /** + * lineHeight + * @param {jQuery} $editable + * @param {String} value + */ + this.lineHeight = function ($editable, value) { + beforeCommand($editable); + style.stylePara(range.create(), { + lineHeight: value + }); + afterCommand($editable); + }; + + /** + * unlink + * + * @type command + * + * @param {jQuery} $editable + */ + this.unlink = function ($editable) { + var rng = range.create(); + if (rng.isOnAnchor()) { + var anchor = dom.ancestor(rng.sc, dom.isAnchor); + rng = range.createFromNode(anchor); + rng.select(); + + beforeCommand($editable); + document.execCommand('unlink'); + afterCommand($editable); + } + }; + + /** + * create link (command) + * + * @param {jQuery} $editable + * @param {Object} linkInfo + * @param {Object} options + */ + this.createLink = function ($editable, linkInfo, options) { + var linkUrl = linkInfo.url; + var linkText = linkInfo.text; + var isNewWindow = linkInfo.newWindow; + var rng = linkInfo.range; + var isTextChanged = rng.toString() !== linkText; + + beforeCommand($editable); + + if (options.onCreateLink) { + linkUrl = options.onCreateLink(linkUrl); + } + + var anchors; + if (isTextChanged) { + // Create a new link when text changed. + var anchor = rng.insertNode($('' + linkText + '')[0]); + anchors = [anchor]; + } else { + anchors = style.styleNodes(rng, { + nodeName: 'A', + expandClosestSibling: true, + onlyPartialContains: true + }); + } + + $.each(anchors, function (idx, anchor) { + $(anchor).attr('href', linkUrl); + if (isNewWindow) { + $(anchor).attr('target', '_blank'); + } else { + $(anchor).removeAttr('target'); + } + }); + + var startRange = range.createFromNode(list.head(anchors)).collapse(true); + var startPoint = startRange.getStartPoint(); + var endRange = range.createFromNode(list.last(anchors)).collapse(); + var endPoint = endRange.getEndPoint(); + + range.create( + startPoint.node, + startPoint.offset, + endPoint.node, + endPoint.offset + ).select(); + + afterCommand($editable); + }; + + /** + * returns link info + * + * @return {Object} + * @return {WrappedRange} return.range + * @return {String} return.text + * @return {Boolean} [return.isNewWindow=true] + * @return {String} [return.url=""] + */ + this.getLinkInfo = function ($editable) { + $editable.focus(); + + var rng = range.create().expand(dom.isAnchor); + + // Get the first anchor on range(for edit). + var $anchor = $(list.head(rng.nodes(dom.isAnchor))); + + return { + range: rng, + text: rng.toString(), + isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false, + url: $anchor.length ? $anchor.attr('href') : '' + }; + }; + + /** + * setting color + * + * @param {Node} $editable + * @param {Object} sObjColor color code + * @param {String} sObjColor.foreColor foreground color + * @param {String} sObjColor.backColor background color + */ + this.color = function ($editable, sObjColor) { + var oColor = JSON.parse(sObjColor); + var foreColor = oColor.foreColor, backColor = oColor.backColor; + + beforeCommand($editable); + + if (foreColor) { document.execCommand('foreColor', false, foreColor); } + if (backColor) { document.execCommand('backColor', false, backColor); } + + afterCommand($editable); + }; + + /** + * insert Table + * + * @param {Node} $editable + * @param {String} sDim dimension of table (ex : "5x5") + */ + this.insertTable = function ($editable, sDim) { + var dimension = sDim.split('x'); + beforeCommand($editable); + + var rng = range.create(); + rng = rng.deleteContents(); + rng.insertNode(table.createTable(dimension[0], dimension[1])); + afterCommand($editable); + }; + + /** + * float me + * + * @param {jQuery} $editable + * @param {String} value + * @param {jQuery} $target + */ + this.floatMe = function ($editable, value, $target) { + beforeCommand($editable); + $target.css('float', value); + afterCommand($editable); + }; + + /** + * change image shape + * + * @param {jQuery} $editable + * @param {String} value css class + * @param {Node} $target + */ + this.imageShape = function ($editable, value, $target) { + beforeCommand($editable); + + $target.removeClass('img-rounded img-circle img-thumbnail'); + + if (value) { + $target.addClass(value); + } + + afterCommand($editable); + }; + + /** + * resize overlay element + * @param {jQuery} $editable + * @param {String} value + * @param {jQuery} $target - target element + */ + this.resize = function ($editable, value, $target) { + beforeCommand($editable); + + $target.css({ + width: value * 100 + '%', + height: '' + }); + + afterCommand($editable); + }; + + /** + * @param {Position} pos + * @param {jQuery} $target - target element + * @param {Boolean} [bKeepRatio] - keep ratio + */ + this.resizeTo = function (pos, $target, bKeepRatio) { + var imageSize; + if (bKeepRatio) { + var newRatio = pos.y / pos.x; + var ratio = $target.data('ratio'); + imageSize = { + width: ratio > newRatio ? pos.x : pos.y / ratio, + height: ratio > newRatio ? pos.x * ratio : pos.y + }; + } else { + imageSize = { + width: pos.x, + height: pos.y + }; + } + + $target.css(imageSize); + }; + + /** + * remove media object + * + * @param {jQuery} $editable + * @param {String} value - dummy argument (for keep interface) + * @param {jQuery} $target - target element + */ + this.removeMedia = function ($editable, value, $target) { + beforeCommand($editable); + $target.detach(); + + handler.bindCustomEvent( + $(), $editable.data('callbacks'), 'media.delete' + ).call($target, this.$editable); + + afterCommand($editable); + }; + + /** + * set focus + * + * @param $editable + */ + this.focus = function ($editable) { + $editable.focus(); + + // [workaround] for firefox bug http://goo.gl/lVfAaI + if (agent.isFF) { + range.createFromNode($editable[0].firstChild || $editable[0]).collapse().select(); + } + }; + }; + + /** + * @class module.Button + * + * Button + */ + var Button = function () { + /** + * update button status + * + * @param {jQuery} $container + * @param {Object} styleInfo + */ + this.update = function ($container, styleInfo) { + /** + * handle dropdown's check mark (for fontname, fontsize, lineHeight). + * @param {jQuery} $btn + * @param {Number} value + */ + var checkDropdownMenu = function ($btn, value) { + $btn.find('.dropdown-menu li a').each(function () { + // always compare string to avoid creating another func. + var isChecked = ($(this).data('value') + '') === (value + ''); + this.className = isChecked ? 'checked' : ''; + }); + }; + + /** + * update button state(active or not). + * + * @private + * @param {String} selector + * @param {Function} pred + */ + var btnState = function (selector, pred) { + var $btn = $container.find(selector); + $btn.toggleClass('active', pred()); + }; + + if (styleInfo.image) { + var $img = $(styleInfo.image); + + btnState('button[data-event="imageShape"][data-value="img-rounded"]', function () { + return $img.hasClass('img-rounded'); + }); + btnState('button[data-event="imageShape"][data-value="img-circle"]', function () { + return $img.hasClass('img-circle'); + }); + btnState('button[data-event="imageShape"][data-value="img-thumbnail"]', function () { + return $img.hasClass('img-thumbnail'); + }); + btnState('button[data-event="imageShape"]:not([data-value])', function () { + return !$img.is('.img-rounded, .img-circle, .img-thumbnail'); + }); + + var imgFloat = $img.css('float'); + btnState('button[data-event="floatMe"][data-value="left"]', function () { + return imgFloat === 'left'; + }); + btnState('button[data-event="floatMe"][data-value="right"]', function () { + return imgFloat === 'right'; + }); + btnState('button[data-event="floatMe"][data-value="none"]', function () { + return imgFloat !== 'left' && imgFloat !== 'right'; + }); + + var style = $img.attr('style'); + btnState('button[data-event="resize"][data-value="1"]', function () { + return !!/(^|\s)(max-)?width\s*:\s*100%/.test(style); + }); + btnState('button[data-event="resize"][data-value="0.5"]', function () { + return !!/(^|\s)(max-)?width\s*:\s*50%/.test(style); + }); + btnState('button[data-event="resize"][data-value="0.25"]', function () { + return !!/(^|\s)(max-)?width\s*:\s*25%/.test(style); + }); + return; + } + + // fontname + var $fontname = $container.find('.note-fontname'); + if ($fontname.length) { + var selectedFont = styleInfo['font-family']; + if (!!selectedFont) { + + var list = selectedFont.split(','); + for (var i = 0, len = list.length; i < len; i++) { + selectedFont = list[i].replace(/[\'\"]/g, '').replace(/\s+$/, '').replace(/^\s+/, ''); + if (agent.isFontInstalled(selectedFont)) { + break; + } + } + + $fontname.find('.note-current-fontname').text(selectedFont); + checkDropdownMenu($fontname, selectedFont); + + } + } + + // fontsize + var $fontsize = $container.find('.note-fontsize'); + $fontsize.find('.note-current-fontsize').text(styleInfo['font-size']); + checkDropdownMenu($fontsize, parseFloat(styleInfo['font-size'])); + + // lineheight + var $lineHeight = $container.find('.note-height'); + checkDropdownMenu($lineHeight, parseFloat(styleInfo['line-height'])); + + btnState('button[data-event="bold"]', function () { + return styleInfo['font-bold'] === 'bold'; + }); + btnState('button[data-event="italic"]', function () { + return styleInfo['font-italic'] === 'italic'; + }); + btnState('button[data-event="underline"]', function () { + return styleInfo['font-underline'] === 'underline'; + }); + btnState('button[data-event="strikethrough"]', function () { + return styleInfo['font-strikethrough'] === 'strikethrough'; + }); + btnState('button[data-event="superscript"]', function () { + return styleInfo['font-superscript'] === 'superscript'; + }); + btnState('button[data-event="subscript"]', function () { + return styleInfo['font-subscript'] === 'subscript'; + }); + btnState('button[data-event="justifyLeft"]', function () { + return styleInfo['text-align'] === 'left' || styleInfo['text-align'] === 'start'; + }); + btnState('button[data-event="justifyCenter"]', function () { + return styleInfo['text-align'] === 'center'; + }); + btnState('button[data-event="justifyRight"]', function () { + return styleInfo['text-align'] === 'right'; + }); + btnState('button[data-event="justifyFull"]', function () { + return styleInfo['text-align'] === 'justify'; + }); + btnState('button[data-event="insertUnorderedList"]', function () { + return styleInfo['list-style'] === 'unordered'; + }); + btnState('button[data-event="insertOrderedList"]', function () { + return styleInfo['list-style'] === 'ordered'; + }); + }; + + /** + * update recent color + * + * @param {Node} button + * @param {String} eventName + * @param {Mixed} value + */ + this.updateRecentColor = function (button, eventName, value) { + var $color = $(button).closest('.note-color'); + var $recentColor = $color.find('.note-recent-color'); + var colorInfo = JSON.parse($recentColor.attr('data-value')); + colorInfo[eventName] = value; + $recentColor.attr('data-value', JSON.stringify(colorInfo)); + var sKey = eventName === 'backColor' ? 'background-color' : 'color'; + $recentColor.find('i').css(sKey, value); + }; + }; + + /** + * @class module.Toolbar + * + * Toolbar + */ + var Toolbar = function () { + var button = new Button(); + + this.update = function ($toolbar, styleInfo) { + button.update($toolbar, styleInfo); + }; + + /** + * @param {Node} button + * @param {String} eventName + * @param {String} value + */ + this.updateRecentColor = function (buttonNode, eventName, value) { + button.updateRecentColor(buttonNode, eventName, value); + }; + + /** + * activate buttons exclude codeview + * @param {jQuery} $toolbar + */ + this.activate = function ($toolbar) { + $toolbar.find('button') + .not('button[data-event="codeview"]') + .removeClass('disabled'); + }; + + /** + * deactivate buttons exclude codeview + * @param {jQuery} $toolbar + */ + this.deactivate = function ($toolbar) { + $toolbar.find('button') + .not('button[data-event="codeview"]') + .addClass('disabled'); + }; + + /** + * @param {jQuery} $container + * @param {Boolean} [bFullscreen=false] + */ + this.updateFullscreen = function ($container, bFullscreen) { + var $btn = $container.find('button[data-event="fullscreen"]'); + $btn.toggleClass('active', bFullscreen); + }; + + /** + * @param {jQuery} $container + * @param {Boolean} [isCodeview=false] + */ + this.updateCodeview = function ($container, isCodeview) { + var $btn = $container.find('button[data-event="codeview"]'); + $btn.toggleClass('active', isCodeview); + + if (isCodeview) { + this.deactivate($container); + } else { + this.activate($container); + } + }; + + /** + * get button in toolbar + * + * @param {jQuery} $editable + * @param {String} name + * @return {jQuery} + */ + this.get = function ($editable, name) { + var $toolbar = dom.makeLayoutInfo($editable).toolbar(); + + return $toolbar.find('[data-name=' + name + ']'); + }; + + /** + * set button state + * @param {jQuery} $editable + * @param {String} name + * @param {Boolean} [isActive=true] + */ + this.setButtonState = function ($editable, name, isActive) { + isActive = (isActive === false) ? false : true; + + var $button = this.get($editable, name); + $button.toggleClass('active', isActive); + }; + }; + + var EDITABLE_PADDING = 24; + + var Statusbar = function () { + var $document = $(document); + + this.attach = function (layoutInfo, options) { + if (!options.disableResizeEditor) { + layoutInfo.statusbar().on('mousedown', hStatusbarMousedown); + } + }; + + /** + * `mousedown` event handler on statusbar + * + * @param {MouseEvent} event + */ + var hStatusbarMousedown = function (event) { + event.preventDefault(); + event.stopPropagation(); + + var $editable = dom.makeLayoutInfo(event.target).editable(); + var editableTop = $editable.offset().top - $document.scrollTop(); + + var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); + var options = layoutInfo.editor().data('options'); + + $document.on('mousemove', function (event) { + var nHeight = event.clientY - (editableTop + EDITABLE_PADDING); + + nHeight = (options.minHeight > 0) ? Math.max(nHeight, options.minHeight) : nHeight; + nHeight = (options.maxHeight > 0) ? Math.min(nHeight, options.maxHeight) : nHeight; + + $editable.height(nHeight); + }).one('mouseup', function () { + $document.off('mousemove'); + }); + }; + }; + + /** + * @class module.Popover + * + * Popover (http://getbootstrap.com/javascript/#popovers) + * + */ + var Popover = function () { + var button = new Button(); + + /** + * returns position from placeholder + * + * @private + * @param {Node} placeholder + * @param {Boolean} isAirMode + * @return {Object} + * @return {Number} return.left + * @return {Number} return.top + */ + var posFromPlaceholder = function (placeholder, isAirMode) { + var $placeholder = $(placeholder); + var pos = isAirMode ? $placeholder.offset() : $placeholder.position(); + var height = $placeholder.outerHeight(true); // include margin + + // popover below placeholder. + return { + left: pos.left, + top: pos.top + height + }; + }; + + /** + * show popover + * + * @private + * @param {jQuery} popover + * @param {Position} pos + */ + var showPopover = function ($popover, pos) { + $popover.css({ + display: 'block', + left: pos.left, + top: pos.top + }); + }; + + var PX_POPOVER_ARROW_OFFSET_X = 20; + + /** + * update current state + * @param {jQuery} $popover - popover container + * @param {Object} styleInfo - style object + * @param {Boolean} isAirMode + */ + this.update = function ($popover, styleInfo, isAirMode) { + button.update($popover, styleInfo); + + var $linkPopover = $popover.find('.note-link-popover'); + if (styleInfo.anchor) { + var $anchor = $linkPopover.find('a'); + var href = $(styleInfo.anchor).attr('href'); + var target = $(styleInfo.anchor).attr('target'); + $anchor.attr('href', href).html(href); + if (!target) { + $anchor.removeAttr('target'); + } else { + $anchor.attr('target', '_blank'); + } + showPopover($linkPopover, posFromPlaceholder(styleInfo.anchor, isAirMode)); + } else { + $linkPopover.hide(); + } + + var $imagePopover = $popover.find('.note-image-popover'); + if (styleInfo.image) { + showPopover($imagePopover, posFromPlaceholder(styleInfo.image, isAirMode)); + } else { + $imagePopover.hide(); + } + + var $airPopover = $popover.find('.note-air-popover'); + if (isAirMode && !styleInfo.range.isCollapsed()) { + var rect = list.last(styleInfo.range.getClientRects()); + if (rect) { + var bnd = func.rect2bnd(rect); + showPopover($airPopover, { + left: Math.max(bnd.left + bnd.width / 2 - PX_POPOVER_ARROW_OFFSET_X, 0), + top: bnd.top + bnd.height + }); + } + } else { + $airPopover.hide(); + } + }; + + /** + * @param {Node} button + * @param {String} eventName + * @param {String} value + */ + this.updateRecentColor = function (button, eventName, value) { + button.updateRecentColor(button, eventName, value); + }; + + /** + * hide all popovers + * @param {jQuery} $popover - popover container + */ + this.hide = function ($popover) { + $popover.children().hide(); + }; + }; + + /** + * @class module.Handle + * + * Handle + */ + var Handle = function (handler) { + var $document = $(document); + + /** + * `mousedown` event handler on $handle + * - controlSizing: resize image + * + * @param {MouseEvent} event + */ + var hHandleMousedown = function (event) { + if (dom.isControlSizing(event.target)) { + event.preventDefault(); + event.stopPropagation(); + + var layoutInfo = dom.makeLayoutInfo(event.target), + $handle = layoutInfo.handle(), + $popover = layoutInfo.popover(), + $editable = layoutInfo.editable(), + $editor = layoutInfo.editor(); + + var target = $handle.find('.note-control-selection').data('target'), + $target = $(target), posStart = $target.offset(), + scrollTop = $document.scrollTop(); + + var isAirMode = $editor.data('options').airMode; + + $document.on('mousemove', function (event) { + handler.invoke('editor.resizeTo', { + x: event.clientX - posStart.left, + y: event.clientY - (posStart.top - scrollTop) + }, $target, !event.shiftKey); + + handler.invoke('handle.update', $handle, {image: target}, isAirMode); + handler.invoke('popover.update', $popover, {image: target}, isAirMode); + }).one('mouseup', function () { + $document.off('mousemove'); + handler.invoke('editor.afterCommand', $editable); + }); + + if (!$target.data('ratio')) { // original ratio. + $target.data('ratio', $target.height() / $target.width()); + } + } + }; + + this.attach = function (layoutInfo) { + layoutInfo.handle().on('mousedown', hHandleMousedown); + }; + + /** + * update handle + * @param {jQuery} $handle + * @param {Object} styleInfo + * @param {Boolean} isAirMode + */ + this.update = function ($handle, styleInfo, isAirMode) { + var $selection = $handle.find('.note-control-selection'); + if (styleInfo.image) { + var $image = $(styleInfo.image); + var pos = isAirMode ? $image.offset() : $image.position(); + + // include margin + var imageSize = { + w: $image.outerWidth(true), + h: $image.outerHeight(true) + }; + + $selection.css({ + display: 'block', + left: pos.left, + top: pos.top, + width: imageSize.w, + height: imageSize.h + }).data('target', styleInfo.image); // save current image element. + var sizingText = imageSize.w + 'x' + imageSize.h; + $selection.find('.note-control-selection-info').text(sizingText); + } else { + $selection.hide(); + } + }; + + /** + * hide + * + * @param {jQuery} $handle + */ + this.hide = function ($handle) { + $handle.children().hide(); + }; + }; + + var Fullscreen = function (handler) { + var $window = $(window); + var $scrollbar = $('html, body'); + + /** + * toggle fullscreen + * + * @param {Object} layoutInfo + */ + this.toggle = function (layoutInfo) { + + var $editor = layoutInfo.editor(), + $toolbar = layoutInfo.toolbar(), + $editable = layoutInfo.editable(), + $codable = layoutInfo.codable(); + + var resize = function (size) { + $editable.css('height', size.h); + $codable.css('height', size.h); + if ($codable.data('cmeditor')) { + $codable.data('cmeditor').setsize(null, size.h); + } + }; + + $editor.toggleClass('fullscreen'); + var isFullscreen = $editor.hasClass('fullscreen'); + if (isFullscreen) { + $editable.data('orgheight', $editable.css('height')); + + $window.on('resize', function () { + resize({ + h: $window.height() - $toolbar.outerHeight() + }); + }).trigger('resize'); + + $scrollbar.css('overflow', 'hidden'); + } else { + $window.off('resize'); + resize({ + h: $editable.data('orgheight') + }); + $scrollbar.css('overflow', 'visible'); + } + + handler.invoke('toolbar.updateFullscreen', $toolbar, isFullscreen); + }; + }; + + + var CodeMirror; + if (agent.hasCodeMirror) { + if (agent.isSupportAmd) { + require(['CodeMirror'], function (cm) { + CodeMirror = cm; + }); + } else { + CodeMirror = window.CodeMirror; + } + } + + /** + * @class Codeview + */ + var Codeview = function (handler) { + + this.sync = function (layoutInfo) { + var isCodeview = handler.invoke('codeview.isActivated', layoutInfo); + if (isCodeview && agent.hasCodeMirror) { + layoutInfo.codable().data('cmEditor').save(); + } + }; + + /** + * @param {Object} layoutInfo + * @return {Boolean} + */ + this.isActivated = function (layoutInfo) { + var $editor = layoutInfo.editor(); + return $editor.hasClass('codeview'); + }; + + /** + * toggle codeview + * + * @param {Object} layoutInfo + */ + this.toggle = function (layoutInfo) { + if (this.isActivated(layoutInfo)) { + this.deactivate(layoutInfo); + } else { + this.activate(layoutInfo); + } + }; + + /** + * activate code view + * + * @param {Object} layoutInfo + */ + this.activate = function (layoutInfo) { + var $editor = layoutInfo.editor(), + $toolbar = layoutInfo.toolbar(), + $editable = layoutInfo.editable(), + $codable = layoutInfo.codable(), + $popover = layoutInfo.popover(), + $handle = layoutInfo.handle(); + + var options = $editor.data('options'); + + $codable.val(dom.html($editable, options.prettifyHtml)); + $codable.height($editable.height()); + + handler.invoke('toolbar.updateCodeview', $toolbar, true); + handler.invoke('popover.hide', $popover); + handler.invoke('handle.hide', $handle); + + $editor.addClass('codeview'); + + $codable.focus(); + + // activate CodeMirror as codable + if (agent.hasCodeMirror) { + var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror); + + // CodeMirror TernServer + if (options.codemirror.tern) { + var server = new CodeMirror.TernServer(options.codemirror.tern); + cmEditor.ternServer = server; + cmEditor.on('cursorActivity', function (cm) { + server.updateArgHints(cm); + }); + } + + // CodeMirror hasn't Padding. + cmEditor.setSize(null, $editable.outerHeight()); + $codable.data('cmEditor', cmEditor); + } + }; + + /** + * deactivate code view + * + * @param {Object} layoutInfo + */ + this.deactivate = function (layoutInfo) { + var $holder = layoutInfo.holder(), + $editor = layoutInfo.editor(), + $toolbar = layoutInfo.toolbar(), + $editable = layoutInfo.editable(), + $codable = layoutInfo.codable(); + + var options = $editor.data('options'); + + // deactivate CodeMirror as codable + if (agent.hasCodeMirror) { + var cmEditor = $codable.data('cmEditor'); + $codable.val(cmEditor.getValue()); + cmEditor.toTextArea(); + } + + var value = dom.value($codable, options.prettifyHtml) || dom.emptyPara; + var isChange = $editable.html() !== value; + + $editable.html(value); + $editable.height(options.height ? $codable.height() : 'auto'); + $editor.removeClass('codeview'); + + if (isChange) { + handler.bindCustomEvent( + $holder, $editable.data('callbacks'), 'change' + )($editable.html(), $editable); + } + + $editable.focus(); + + handler.invoke('toolbar.updateCodeview', $toolbar, false); + }; + }; + + var DragAndDrop = function (handler) { + var $document = $(document); + + /** + * attach Drag and Drop Events + * + * @param {Object} layoutInfo - layout Informations + * @param {Object} options + */ + this.attach = function (layoutInfo, options) { + if (options.airMode || options.disableDragAndDrop) { + // prevent default drop event + $document.on('drop', function (e) { + e.preventDefault(); + }); + } else { + this.attachDragAndDropEvent(layoutInfo, options); + } + }; + + /** + * attach Drag and Drop Events + * + * @param {Object} layoutInfo - layout Informations + * @param {Object} options + */ + this.attachDragAndDropEvent = function (layoutInfo, options) { + var collection = $(), + $editor = layoutInfo.editor(), + $dropzone = layoutInfo.dropzone(), + $dropzoneMessage = $dropzone.find('.note-dropzone-message'); + + // show dropzone on dragenter when dragging a object to document + // -but only if the editor is visible, i.e. has a positive width and height + $document.on('dragenter', function (e) { + var isCodeview = handler.invoke('codeview.isActivated', layoutInfo); + var hasEditorSize = $editor.width() > 0 && $editor.height() > 0; + if (!isCodeview && !collection.length && hasEditorSize) { + $editor.addClass('dragover'); + $dropzone.width($editor.width()); + $dropzone.height($editor.height()); + $dropzoneMessage.text(options.langInfo.image.dragImageHere); + } + collection = collection.add(e.target); + }).on('dragleave', function (e) { + collection = collection.not(e.target); + if (!collection.length) { + $editor.removeClass('dragover'); + } + }).on('drop', function () { + collection = $(); + $editor.removeClass('dragover'); + }); + + // change dropzone's message on hover. + $dropzone.on('dragenter', function () { + $dropzone.addClass('hover'); + $dropzoneMessage.text(options.langInfo.image.dropImage); + }).on('dragleave', function () { + $dropzone.removeClass('hover'); + $dropzoneMessage.text(options.langInfo.image.dragImageHere); + }); + + // attach dropImage + $dropzone.on('drop', function (event) { + event.preventDefault(); + + var dataTransfer = event.originalEvent.dataTransfer; + var html = dataTransfer.getData('text/html'); + var text = dataTransfer.getData('text/plain'); + + var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); + + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + layoutInfo.editable().focus(); + handler.insertImages(layoutInfo, dataTransfer.files); + } else if (html) { + $(html).each(function () { + layoutInfo.editable().focus(); + handler.invoke('editor.insertNode', layoutInfo.editable(), this); + }); + } else if (text) { + layoutInfo.editable().focus(); + handler.invoke('editor.insertText', layoutInfo.editable(), text); + } + }).on('dragover', false); // prevent default dragover event + }; + }; + + var Clipboard = function (handler) { + + this.attach = function (layoutInfo) { + layoutInfo.editable().on('paste', hPasteClipboardImage); + }; + + /** + * paste clipboard image + * + * @param {Event} event + */ + var hPasteClipboardImage = function (event) { + var clipboardData = event.originalEvent.clipboardData; + var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); + var $editable = layoutInfo.editable(); + + if (!clipboardData || !clipboardData.items || !clipboardData.items.length) { + var callbacks = $editable.data('callbacks'); + // only can run if it has onImageUpload method + if (!callbacks.onImageUpload) { + return; + } + + // save cursor + handler.invoke('editor.saveNode', $editable); + handler.invoke('editor.saveRange', $editable); + + $editable.html(''); + + setTimeout(function () { + var $img = $editable.find('img'); + + // if img is no in clipboard, insert text or dom + if (!$img.length || $img[0].src.indexOf('data:') === -1) { + var html = $editable.html(); + + handler.invoke('editor.restoreNode', $editable); + handler.invoke('editor.restoreRange', $editable); + + handler.invoke('editor.focus', $editable); + try { + handler.invoke('editor.pasteHTML', $editable, html); + } catch (ex) { + handler.invoke('editor.insertText', $editable, html); + } + return; + } + + var datauri = $img[0].src; + + var data = atob(datauri.split(',')[1]); + var array = new Uint8Array(data.length); + for (var i = 0; i < data.length; i++) { + array[i] = data.charCodeAt(i); + } + + var blob = new Blob([array], { type : 'image/png' }); + blob.name = 'clipboard.png'; + + handler.invoke('editor.restoreNode', $editable); + handler.invoke('editor.restoreRange', $editable); + handler.insertImages(layoutInfo, [blob]); + + handler.invoke('editor.afterCommand', $editable); + }, 0); + + return; + } + + var item = list.head(clipboardData.items); + var isClipboardImage = item.kind === 'file' && item.type.indexOf('image/') !== -1; + + if (isClipboardImage) { + handler.insertImages(layoutInfo, [item.getAsFile()]); + } + + handler.invoke('editor.afterCommand', $editable); + }; + }; + + var LinkDialog = function (handler) { + + /** + * toggle button status + * + * @private + * @param {jQuery} $btn + * @param {Boolean} isEnable + */ + var toggleBtn = function ($btn, isEnable) { + $btn.toggleClass('disabled', !isEnable); + $btn.attr('disabled', !isEnable); + }; + + /** + * bind enter key + * + * @private + * @param {jQuery} $input + * @param {jQuery} $btn + */ + var bindEnterKey = function ($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === key.code.ENTER) { + $btn.trigger('click'); + } + }); + }; + + /** + * Show link dialog and set event handlers on dialog controls. + * + * @param {jQuery} $editable + * @param {jQuery} $dialog + * @param {Object} linkInfo + * @return {Promise} + */ + this.showLinkDialog = function ($editable, $dialog, linkInfo) { + return $.Deferred(function (deferred) { + var $linkDialog = $dialog.find('.note-link-dialog'); + + var $linkText = $linkDialog.find('.note-link-text'), + $linkUrl = $linkDialog.find('.note-link-url'), + $linkBtn = $linkDialog.find('.note-link-btn'), + $openInNewWindow = $linkDialog.find('input[type=checkbox]'); + + $linkDialog.one('shown.bs.modal', function () { + $linkText.val(linkInfo.text); + + $linkText.on('input', function () { + // if linktext was modified by keyup, + // stop cloning text from linkUrl + linkInfo.text = $linkText.val(); + }); + + // if no url was given, copy text to url + if (!linkInfo.url) { + linkInfo.url = linkInfo.text; + toggleBtn($linkBtn, linkInfo.text); + } + + $linkUrl.on('input', function () { + toggleBtn($linkBtn, $linkUrl.val()); + // display same link on `Text to display` input + // when create a new link + if (!linkInfo.text) { + $linkText.val($linkUrl.val()); + } + }).val(linkInfo.url).trigger('focus').trigger('select'); + + bindEnterKey($linkUrl, $linkBtn); + bindEnterKey($linkText, $linkBtn); + + $openInNewWindow.prop('checked', linkInfo.newWindow); + + $linkBtn.one('click', function (event) { + event.preventDefault(); + + deferred.resolve({ + range: linkInfo.range, + url: $linkUrl.val(), + text: $linkText.val(), + newWindow: $openInNewWindow.is(':checked') + }); + $linkDialog.modal('hide'); + }); + }).one('hidden.bs.modal', function () { + // detach events + $linkText.off('input keypress'); + $linkUrl.off('input keypress'); + $linkBtn.off('click'); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }).modal('show'); + }).promise(); + }; + + /** + * @param {Object} layoutInfo + */ + this.show = function (layoutInfo) { + var $editor = layoutInfo.editor(), + $dialog = layoutInfo.dialog(), + $editable = layoutInfo.editable(), + $popover = layoutInfo.popover(), + linkInfo = handler.invoke('editor.getLinkInfo', $editable); + + var options = $editor.data('options'); + + handler.invoke('editor.saveRange', $editable); + this.showLinkDialog($editable, $dialog, linkInfo).then(function (linkInfo) { + handler.invoke('editor.restoreRange', $editable); + handler.invoke('editor.createLink', $editable, linkInfo, options); + // hide popover after creating link + handler.invoke('popover.hide', $popover); + }).fail(function () { + handler.invoke('editor.restoreRange', $editable); + }); + }; + }; + + var ImageDialog = function (handler) { + /** + * toggle button status + * + * @private + * @param {jQuery} $btn + * @param {Boolean} isEnable + */ + var toggleBtn = function ($btn, isEnable) { + $btn.toggleClass('disabled', !isEnable); + $btn.attr('disabled', !isEnable); + }; + + /** + * bind enter key + * + * @private + * @param {jQuery} $input + * @param {jQuery} $btn + */ + var bindEnterKey = function ($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === key.code.ENTER) { + $btn.trigger('click'); + } + }); + }; + + this.show = function (layoutInfo) { + var $dialog = layoutInfo.dialog(), + $editable = layoutInfo.editable(); + + handler.invoke('editor.saveRange', $editable); + this.showImageDialog($editable, $dialog).then(function (data) { + handler.invoke('editor.restoreRange', $editable); + + if (typeof data === 'string') { + // image url + handler.invoke('editor.insertImage', $editable, data); + } else { + // array of files + handler.insertImages(layoutInfo, data); + } + }).fail(function () { + handler.invoke('editor.restoreRange', $editable); + }); + }; + + /** + * show image dialog + * + * @param {jQuery} $editable + * @param {jQuery} $dialog + * @return {Promise} + */ + this.showImageDialog = function ($editable, $dialog) { + return $.Deferred(function (deferred) { + var $imageDialog = $dialog.find('.note-image-dialog'); + + var $imageInput = $dialog.find('.note-image-input'), + $imageUrl = $dialog.find('.note-image-url'), + $imageBtn = $dialog.find('.note-image-btn'); + + $imageDialog.one('shown.bs.modal', function () { + // Cloning imageInput to clear element. + $imageInput.replaceWith($imageInput.clone() + .on('change', function () { + deferred.resolve(this.files || this.value); + $imageDialog.modal('hide'); + }) + .val('') + ); + + $imageBtn.click(function (event) { + event.preventDefault(); + + deferred.resolve($imageUrl.val()); + $imageDialog.modal('hide'); + }); + + $imageUrl.on('keyup paste', function (event) { + var url; + + if (event.type === 'paste') { + url = event.originalEvent.clipboardData.getData('text'); + } else { + url = $imageUrl.val(); + } + + toggleBtn($imageBtn, url); + }).val('').trigger('focus'); + bindEnterKey($imageUrl, $imageBtn); + }).one('hidden.bs.modal', function () { + $imageInput.off('change'); + $imageUrl.off('keyup paste keypress'); + $imageBtn.off('click'); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }).modal('show'); + }); + }; + }; + + var HelpDialog = function (handler) { + /** + * show help dialog + * + * @param {jQuery} $editable + * @param {jQuery} $dialog + * @return {Promise} + */ + this.showHelpDialog = function ($editable, $dialog) { + return $.Deferred(function (deferred) { + var $helpDialog = $dialog.find('.note-help-dialog'); + + $helpDialog.one('hidden.bs.modal', function () { + deferred.resolve(); + }).modal('show'); + }).promise(); + }; + + /** + * @param {Object} layoutInfo + */ + this.show = function (layoutInfo) { + var $dialog = layoutInfo.dialog(), + $editable = layoutInfo.editable(); + + handler.invoke('editor.saveRange', $editable, true); + this.showHelpDialog($editable, $dialog).then(function () { + handler.invoke('editor.restoreRange', $editable); + }); + }; + }; + + + /** + * @class EventHandler + * + * EventHandler + * - TODO: new instance per a editor + */ + var EventHandler = function () { + /** + * Modules + */ + var modules = this.modules = { + editor: new Editor(this), + toolbar: new Toolbar(this), + statusbar: new Statusbar(this), + popover: new Popover(this), + handle: new Handle(this), + fullscreen: new Fullscreen(this), + codeview: new Codeview(this), + dragAndDrop: new DragAndDrop(this), + clipboard: new Clipboard(this), + linkDialog: new LinkDialog(this), + imageDialog: new ImageDialog(this), + helpDialog: new HelpDialog(this) + }; + + /** + * invoke module's method + * + * @param {String} moduleAndMethod - ex) 'editor.redo' + * @param {...*} arguments - arguments of method + * @return {*} + */ + this.invoke = function () { + var moduleAndMethod = list.head(list.from(arguments)); + var args = list.tail(list.from(arguments)); + + var splits = moduleAndMethod.split('.'); + var hasSeparator = splits.length > 1; + var moduleName = hasSeparator && list.head(splits); + var methodName = hasSeparator ? list.last(splits) : list.head(splits); + + var module = this.getModule(moduleName); + var method = module[methodName]; + + return method && method.apply(module, args); + }; + + /** + * returns module + * + * @param {String} moduleName - name of module + * @return {Module} - defaults is editor + */ + this.getModule = function (moduleName) { + return this.modules[moduleName] || this.modules.editor; + }; + + /** + * @param {jQuery} $holder + * @param {Object} callbacks + * @param {String} eventNamespace + * @returns {Function} + */ + var bindCustomEvent = this.bindCustomEvent = function ($holder, callbacks, eventNamespace) { + return function () { + var callback = callbacks[func.namespaceToCamel(eventNamespace, 'on')]; + if (callback) { + callback.apply($holder[0], arguments); + } + return $holder.trigger('summernote.' + eventNamespace, arguments); + }; + }; + + /** + * insert Images from file array. + * + * @private + * @param {Object} layoutInfo + * @param {File[]} files + */ + this.insertImages = function (layoutInfo, files) { + var $editor = layoutInfo.editor(), + $editable = layoutInfo.editable(), + $holder = layoutInfo.holder(); + + var callbacks = $editable.data('callbacks'); + var options = $editor.data('options'); + + // If onImageUpload options setted + if (callbacks.onImageUpload) { + bindCustomEvent($holder, callbacks, 'image.upload')(files); + // else insert Image as dataURL + } else { + $.each(files, function (idx, file) { + var filename = file.name; + if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) { + bindCustomEvent($holder, callbacks, 'image.upload.error')(options.langInfo.image.maximumFileSizeError); + } else { + async.readFileAsDataURL(file).then(function (sDataURL) { + modules.editor.insertImage($editable, sDataURL, filename); + }).fail(function () { + bindCustomEvent($holder, callbacks, 'image.upload.error')(options.langInfo.image.maximumFileSizeError); + }); + } + }); + } + }; + + var commands = { + /** + * @param {Object} layoutInfo + */ + showLinkDialog: function (layoutInfo) { + modules.linkDialog.show(layoutInfo); + }, + + /** + * @param {Object} layoutInfo + */ + showImageDialog: function (layoutInfo) { + modules.imageDialog.show(layoutInfo); + }, + + /** + * @param {Object} layoutInfo + */ + showHelpDialog: function (layoutInfo) { + modules.helpDialog.show(layoutInfo); + }, + + /** + * @param {Object} layoutInfo + */ + fullscreen: function (layoutInfo) { + modules.fullscreen.toggle(layoutInfo); + }, + + /** + * @param {Object} layoutInfo + */ + codeview: function (layoutInfo) { + modules.codeview.toggle(layoutInfo); + } + }; + + var hMousedown = function (event) { + //preventDefault Selection for FF, IE8+ + if (dom.isImg(event.target)) { + event.preventDefault(); + } + }; + + var hToolbarAndPopoverUpdate = function (event) { + // delay for range after mouseup + setTimeout(function () { + var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); + var styleInfo = modules.editor.currentStyle(event.target); + if (!styleInfo) { return; } + + var isAirMode = layoutInfo.editor().data('options').airMode; + if (!isAirMode) { + modules.toolbar.update(layoutInfo.toolbar(), styleInfo); + } + + modules.popover.update(layoutInfo.popover(), styleInfo, isAirMode); + modules.handle.update(layoutInfo.handle(), styleInfo, isAirMode); + }, 0); + }; + + var hScroll = function (event) { + var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target); + //hide popover and handle when scrolled + modules.popover.hide(layoutInfo.popover()); + modules.handle.hide(layoutInfo.handle()); + }; + + var hToolbarAndPopoverMousedown = function (event) { + // prevent default event when insertTable (FF, Webkit) + var $btn = $(event.target).closest('[data-event]'); + if ($btn.length) { + event.preventDefault(); + } + }; + + var hToolbarAndPopoverClick = function (event) { + var $btn = $(event.target).closest('[data-event]'); + + if ($btn.length) { + var eventName = $btn.attr('data-event'), + value = $btn.attr('data-value'), + hide = $btn.attr('data-hide'); + + var layoutInfo = dom.makeLayoutInfo(event.target); + + // before command: detect control selection element($target) + var $target; + if ($.inArray(eventName, ['resize', 'floatMe', 'removeMedia', 'imageShape']) !== -1) { + var $selection = layoutInfo.handle().find('.note-control-selection'); + $target = $($selection.data('target')); + } + + // If requested, hide the popover when the button is clicked. + // Useful for things like showHelpDialog. + if (hide) { + $btn.parents('.popover').hide(); + } + + if ($.isFunction($.summernote.pluginEvents[eventName])) { + $.summernote.pluginEvents[eventName](event, modules.editor, layoutInfo, value); + } else if (modules.editor[eventName]) { // on command + var $editable = layoutInfo.editable(); + $editable.focus(); + modules.editor[eventName]($editable, value, $target); + event.preventDefault(); + } else if (commands[eventName]) { + commands[eventName].call(this, layoutInfo); + event.preventDefault(); + } + + // after command + if ($.inArray(eventName, ['backColor', 'foreColor']) !== -1) { + var options = layoutInfo.editor().data('options', options); + var module = options.airMode ? modules.popover : modules.toolbar; + module.updateRecentColor(list.head($btn), eventName, value); + } + + hToolbarAndPopoverUpdate(event); + } + }; + + var PX_PER_EM = 18; + var hDimensionPickerMove = function (event, options) { + var $picker = $(event.target.parentNode); // target is mousecatcher + var $dimensionDisplay = $picker.next(); + var $catcher = $picker.find('.note-dimension-picker-mousecatcher'); + var $highlighted = $picker.find('.note-dimension-picker-highlighted'); + var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted'); + + var posOffset; + // HTML5 with jQuery - e.offsetX is undefined in Firefox + if (event.offsetX === undefined) { + var posCatcher = $(event.target).offset(); + posOffset = { + x: event.pageX - posCatcher.left, + y: event.pageY - posCatcher.top + }; + } else { + posOffset = { + x: event.offsetX, + y: event.offsetY + }; + } + + var dim = { + c: Math.ceil(posOffset.x / PX_PER_EM) || 1, + r: Math.ceil(posOffset.y / PX_PER_EM) || 1 + }; + + $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' }); + $catcher.attr('data-value', dim.c + 'x' + dim.r); + + if (3 < dim.c && dim.c < options.insertTableMaxSize.col) { + $unhighlighted.css({ width: dim.c + 1 + 'em'}); + } + + if (3 < dim.r && dim.r < options.insertTableMaxSize.row) { + $unhighlighted.css({ height: dim.r + 1 + 'em'}); + } + + $dimensionDisplay.html(dim.c + ' x ' + dim.r); + }; + + /** + * bind KeyMap on keydown + * + * @param {Object} layoutInfo + * @param {Object} keyMap + */ + this.bindKeyMap = function (layoutInfo, keyMap) { + var $editor = layoutInfo.editor(); + var $editable = layoutInfo.editable(); + + $editable.on('keydown', function (event) { + var keys = []; + + // modifier + if (event.metaKey) { keys.push('CMD'); } + if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); } + if (event.shiftKey) { keys.push('SHIFT'); } + + // keycode + var keyName = key.nameFromCode[event.keyCode]; + if (keyName) { + keys.push(keyName); + } + + var eventName = keyMap[keys.join('+')]; + if (eventName) { + if ($.summernote.pluginEvents[eventName]) { + var plugin = $.summernote.pluginEvents[eventName]; + if ($.isFunction(plugin)) { + plugin(event, modules.editor, layoutInfo); + } + } else if (modules.editor[eventName]) { + modules.editor[eventName]($editable, $editor.data('options')); + event.preventDefault(); + } else if (commands[eventName]) { + commands[eventName].call(this, layoutInfo); + event.preventDefault(); + } + } else if (key.isEdit(event.keyCode)) { + modules.editor.afterCommand($editable); + } + }); + }; + + /** + * attach eventhandler + * + * @param {Object} layoutInfo - layout Informations + * @param {Object} options - user options include custom event handlers + */ + this.attach = function (layoutInfo, options) { + // handlers for editable + if (options.shortcuts) { + this.bindKeyMap(layoutInfo, options.keyMap[agent.isMac ? 'mac' : 'pc']); + } + layoutInfo.editable().on('mousedown', hMousedown); + layoutInfo.editable().on('keyup mouseup', hToolbarAndPopoverUpdate); + layoutInfo.editable().on('scroll', hScroll); + modules.clipboard.attach(layoutInfo, options); + + // handler for handle and popover + modules.handle.attach(layoutInfo, options); + layoutInfo.popover().on('click', hToolbarAndPopoverClick); + layoutInfo.popover().on('mousedown', hToolbarAndPopoverMousedown); + + // handler for drag and drop + modules.dragAndDrop.attach(layoutInfo, options); + + // handlers for frame mode (toolbar, statusbar) + if (!options.airMode) { + // handler for toolbar + layoutInfo.toolbar().on('click', hToolbarAndPopoverClick); + layoutInfo.toolbar().on('mousedown', hToolbarAndPopoverMousedown); + + // handler for statusbar + modules.statusbar.attach(layoutInfo, options); + } + + // handler for table dimension + var $catcherContainer = options.airMode ? layoutInfo.popover() : + layoutInfo.toolbar(); + var $catcher = $catcherContainer.find('.note-dimension-picker-mousecatcher'); + $catcher.css({ + width: options.insertTableMaxSize.col + 'em', + height: options.insertTableMaxSize.row + 'em' + }).on('mousemove', function (event) { + hDimensionPickerMove(event, options); + }); + + // save options on editor + layoutInfo.editor().data('options', options); + + // ret styleWithCSS for backColor / foreColor clearing with 'inherit'. + if (!agent.isMSIE) { + // [workaround] for Firefox + // - protect FF Error: NS_ERROR_FAILURE: Failure + setTimeout(function () { + document.execCommand('styleWithCSS', 0, options.styleWithSpan); + }, 0); + } + + // History + var history = new History(layoutInfo.editable()); + layoutInfo.editable().data('NoteHistory', history); + + // All editor status will be saved on editable with jquery's data + // for support multiple editor with singleton object. + layoutInfo.editable().data('callbacks', { + onInit: options.onInit, + onFocus: options.onFocus, + onBlur: options.onBlur, + onKeydown: options.onKeydown, + onKeyup: options.onKeyup, + onMousedown: options.onMousedown, + onEnter: options.onEnter, + onPaste: options.onPaste, + onBeforeCommand: options.onBeforeCommand, + onChange: options.onChange, + onImageUpload: options.onImageUpload, + onImageUploadError: options.onImageUploadError, + onMediaDelete : options.onMediaDelete + }); + + // Textarea: auto filling the code before form submit. + if (dom.isTextarea(list.head(layoutInfo.holder()))) { + layoutInfo.holder().closest('form').submit(function () { + var contents = layoutInfo.holder().code(); + layoutInfo.holder().val(contents); + + // callback on submit + if (options.onsubmit) { + options.onsubmit(contents); + } + }); + } + }; + + /** + * attach jquery custom event + * + * @param {Object} layoutInfo - layout Informations + */ + this.attachCustomEvent = function (layoutInfo, options) { + var $holder = layoutInfo.holder(); + var $editable = layoutInfo.editable(); + var callbacks = $editable.data('callbacks'); + + $editable.focus(bindCustomEvent($holder, callbacks, 'focus')); + $editable.blur(bindCustomEvent($holder, callbacks, 'blur')); + + $editable.keydown(function (event) { + if (event.keyCode === key.code.ENTER) { + bindCustomEvent($holder, callbacks, 'enter').call(this, event); + } + bindCustomEvent($holder, callbacks, 'keydown').call(this, event); + }); + $editable.keyup(bindCustomEvent($holder, callbacks, 'keyup')); + + $editable.on('mousedown', bindCustomEvent($holder, callbacks, 'mousedown')); + $editable.on('mouseup', bindCustomEvent($holder, callbacks, 'mouseup')); + $editable.on('scroll', bindCustomEvent($holder, callbacks, 'scroll')); + + $editable.on('paste', bindCustomEvent($holder, callbacks, 'paste')); + + // [workaround] for old IE - IE8 don't have input events + // - TODO check IE version + var changeEventName = agent.isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input'; + $editable.on(changeEventName, function () { + bindCustomEvent($holder, callbacks, 'change')($editable.html(), $editable); + }); + + // callbacks for advanced features (camel) + if (!options.airMode) { + layoutInfo.toolbar().click(bindCustomEvent($holder, callbacks, 'toolbar.click')); + layoutInfo.popover().click(bindCustomEvent($holder, callbacks, 'popover.click')); + } + + // Textarea: auto filling the code before form submit. + if (dom.isTextarea(list.head($holder))) { + $holder.closest('form').submit(function (e) { + bindCustomEvent($holder, callbacks, 'submit').call(this, e, $holder.code()); + }); + } + + // fire init event + bindCustomEvent($holder, callbacks, 'init')(layoutInfo); + + // fire plugin init event + for (var i = 0, len = $.summernote.plugins.length; i < len; i++) { + if ($.isFunction($.summernote.plugins[i].init)) { + $.summernote.plugins[i].init(layoutInfo); + } + } + }; + + this.detach = function (layoutInfo, options) { + layoutInfo.holder().off(); + layoutInfo.editable().off(); + + layoutInfo.popover().off(); + layoutInfo.handle().off(); + layoutInfo.dialog().off(); + + if (!options.airMode) { + layoutInfo.dropzone().off(); + layoutInfo.toolbar().off(); + layoutInfo.statusbar().off(); + } + }; + }; + + /** + * @class Renderer + * + * renderer + * + * rendering toolbar and editable + */ + var Renderer = function () { + + /** + * bootstrap button template + * @private + * @param {String} label button name + * @param {Object} [options] button options + * @param {String} [options.event] data-event + * @param {String} [options.className] button's class name + * @param {String} [options.value] data-value + * @param {String} [options.title] button's title for popup + * @param {String} [options.dropdown] dropdown html + * @param {String} [options.hide] data-hide + */ + var tplButton = function (label, options) { + var event = options.event; + var value = options.value; + var title = options.title; + var className = options.className; + var dropdown = options.dropdown; + var hide = options.hide; + + return '' + + (dropdown || ''); + }; + + /** + * bootstrap icon button template + * @private + * @param {String} iconClassName + * @param {Object} [options] + * @param {String} [options.event] + * @param {String} [options.value] + * @param {String} [options.title] + * @param {String} [options.dropdown] + */ + var tplIconButton = function (iconClassName, options) { + var label = ''; + return tplButton(label, options); + }; + + /** + * bootstrap popover template + * @private + * @param {String} className + * @param {String} content + */ + var tplPopover = function (className, content) { + var $popover = $(''); + + $popover.find('.popover-content').append(content); + return $popover; + }; + + /** + * bootstrap dialog template + * + * @param {String} className + * @param {String} [title=''] + * @param {String} body + * @param {String} [footer=''] + */ + var tplDialog = function (className, title, body, footer) { + return ''; + }; + + var tplButtonInfo = { + picture: function (lang, options) { + return tplIconButton(options.iconPrefix + 'picture-o', { + event: 'showImageDialog', + title: lang.image.image, + hide: true + }); + }, + link: function (lang, options) { + return tplIconButton(options.iconPrefix + 'link', { + event: 'showLinkDialog', + title: lang.link.link, + hide: true + }); + }, + table: function (lang, options) { + var dropdown = ''; + return tplIconButton(options.iconPrefix + 'table', { + title: lang.table.table, + dropdown: dropdown + }); + }, + style: function (lang, options) { + var items = options.styleTags.reduce(function (memo, v) { + var label = lang.style[v === 'p' ? 'normal' : v]; + return memo + '
    1. ' + + ( + (v === 'p' || v === 'pre') ? label : + '<' + v + '>' + label + '' + ) + + '
    2. '; + }, ''); + + return tplIconButton(options.iconPrefix + 'magic', { + title: lang.style.style, + dropdown: '' + }); + }, + fontname: function (lang, options) { + var realFontList = []; + var items = options.fontNames.reduce(function (memo, v) { + if (!agent.isFontInstalled(v) && options.fontNamesIgnoreCheck.indexOf(v) === -1) { + return memo; + } + realFontList.push(v); + return memo + '
    3. ' + + ' ' + v + + '
    4. '; + }, ''); + + var hasDefaultFont = agent.isFontInstalled(options.defaultFontName); + var defaultFontName = (hasDefaultFont) ? options.defaultFontName : realFontList[0]; + + var label = '' + + defaultFontName + + ''; + return tplButton(label, { + title: lang.font.name, + dropdown: '' + }); + }, + fontsize: function (lang, options) { + var items = options.fontSizes.reduce(function (memo, v) { + return memo + '
    5. ' + + ' ' + v + + '
    6. '; + }, ''); + + var label = '11'; + return tplButton(label, { + title: lang.font.size, + dropdown: '' + }); + }, + color: function (lang, options) { + var colorButtonLabel = ''; + var colorButton = tplButton(colorButtonLabel, { + className: 'note-recent-color', + title: lang.color.recent, + event: 'color', + value: '{"backColor":"yellow"}' + }); + + var dropdown = ''; + + var moreButton = tplButton('', { + title: lang.color.more, + dropdown: dropdown + }); + + return colorButton + moreButton; + }, + bold: function (lang, options) { + return tplIconButton(options.iconPrefix + 'bold', { + event: 'bold', + title: lang.font.bold + }); + }, + italic: function (lang, options) { + return tplIconButton(options.iconPrefix + 'italic', { + event: 'italic', + title: lang.font.italic + }); + }, + underline: function (lang, options) { + return tplIconButton(options.iconPrefix + 'underline', { + event: 'underline', + title: lang.font.underline + }); + }, + strikethrough: function (lang) { + return tplIconButton('fa fa-strikethrough', { + event: 'strikethrough', + title: lang.font.strikethrough + }); + }, + superscript: function (lang) { + return tplIconButton('fa fa-superscript', { + event: 'superscript', + title: lang.font.superscript + }); + }, + subscript: function (lang) { + return tplIconButton('fa fa-subscript', { + event: 'subscript', + title: lang.font.subscript + }); + }, + clear: function (lang, options) { + return tplIconButton(options.iconPrefix + 'eraser', { + event: 'removeFormat', + title: lang.font.clear + }); + }, + ul: function (lang, options) { + return tplIconButton(options.iconPrefix + 'list-ul', { + event: 'insertUnorderedList', + title: lang.lists.unordered + }); + }, + ol: function (lang, options) { + return tplIconButton(options.iconPrefix + 'list-ol', { + event: 'insertOrderedList', + title: lang.lists.ordered + }); + }, + paragraph: function (lang, options) { + var leftButton = tplIconButton(options.iconPrefix + 'align-left', { + title: lang.paragraph.left, + event: 'justifyLeft' + }); + var centerButton = tplIconButton(options.iconPrefix + 'align-center', { + title: lang.paragraph.center, + event: 'justifyCenter' + }); + var rightButton = tplIconButton(options.iconPrefix + 'align-right', { + title: lang.paragraph.right, + event: 'justifyRight' + }); + var justifyButton = tplIconButton(options.iconPrefix + 'align-justify', { + title: lang.paragraph.justify, + event: 'justifyFull' + }); + + var outdentButton = tplIconButton(options.iconPrefix + 'outdent', { + title: lang.paragraph.outdent, + event: 'outdent' + }); + var indentButton = tplIconButton(options.iconPrefix + 'indent', { + title: lang.paragraph.indent, + event: 'indent' + }); + + var dropdown = ''; + + return tplIconButton(options.iconPrefix + 'align-left', { + title: lang.paragraph.paragraph, + dropdown: dropdown + }); + }, + height: function (lang, options) { + var items = options.lineHeights.reduce(function (memo, v) { + return memo + '
    7. ' + + ' ' + v + + '
    8. '; + }, ''); + + return tplIconButton(options.iconPrefix + 'text-height', { + title: lang.font.height, + dropdown: '' + }); + + }, + help: function (lang, options) { + return tplIconButton(options.iconPrefix + 'question', { + event: 'showHelpDialog', + title: lang.options.help, + hide: true + }); + }, + fullscreen: function (lang, options) { + return tplIconButton(options.iconPrefix + 'arrows-alt', { + event: 'fullscreen', + title: lang.options.fullscreen + }); + }, + codeview: function (lang, options) { + return tplIconButton(options.iconPrefix + 'code', { + event: 'codeview', + title: lang.options.codeview + }); + }, + undo: function (lang, options) { + return tplIconButton(options.iconPrefix + 'undo', { + event: 'undo', + title: lang.history.undo + }); + }, + redo: function (lang, options) { + return tplIconButton(options.iconPrefix + 'repeat', { + event: 'redo', + title: lang.history.redo + }); + }, + hr: function (lang, options) { + return tplIconButton(options.iconPrefix + 'minus', { + event: 'insertHorizontalRule', + title: lang.hr.insert + }); + } + }; + + var tplPopovers = function (lang, options) { + var tplLinkPopover = function () { + var linkButton = tplIconButton(options.iconPrefix + 'edit', { + title: lang.link.edit, + event: 'showLinkDialog', + hide: true + }); + var unlinkButton = tplIconButton(options.iconPrefix + 'unlink', { + title: lang.link.unlink, + event: 'unlink' + }); + var content = 'www.google.com  ' + + '
      ' + + linkButton + unlinkButton + + '
      '; + return tplPopover('note-link-popover', content); + }; + + var tplImagePopover = function () { + var fullButton = tplButton('100%', { + title: lang.image.resizeFull, + event: 'resize', + value: '1' + }); + var halfButton = tplButton('50%', { + title: lang.image.resizeHalf, + event: 'resize', + value: '0.5' + }); + var quarterButton = tplButton('25%', { + title: lang.image.resizeQuarter, + event: 'resize', + value: '0.25' + }); + + var leftButton = tplIconButton(options.iconPrefix + 'align-left', { + title: lang.image.floatLeft, + event: 'floatMe', + value: 'left' + }); + var rightButton = tplIconButton(options.iconPrefix + 'align-right', { + title: lang.image.floatRight, + event: 'floatMe', + value: 'right' + }); + var justifyButton = tplIconButton(options.iconPrefix + 'align-justify', { + title: lang.image.floatNone, + event: 'floatMe', + value: 'none' + }); + + var roundedButton = tplIconButton(options.iconPrefix + 'square', { + title: lang.image.shapeRounded, + event: 'imageShape', + value: 'img-rounded' + }); + var circleButton = tplIconButton(options.iconPrefix + 'circle-o', { + title: lang.image.shapeCircle, + event: 'imageShape', + value: 'img-circle' + }); + var thumbnailButton = tplIconButton(options.iconPrefix + 'picture-o', { + title: lang.image.shapeThumbnail, + event: 'imageShape', + value: 'img-thumbnail' + }); + var noneButton = tplIconButton(options.iconPrefix + 'times', { + title: lang.image.shapeNone, + event: 'imageShape', + value: '' + }); + + var removeButton = tplIconButton(options.iconPrefix + 'trash-o', { + title: lang.image.remove, + event: 'removeMedia', + value: 'none' + }); + + var content = '
      ' + fullButton + halfButton + quarterButton + '
      ' + + '
      ' + leftButton + rightButton + justifyButton + '
      ' + + '
      ' + roundedButton + circleButton + thumbnailButton + noneButton + '
      ' + + '
      ' + removeButton + '
      '; + return tplPopover('note-image-popover', content); + }; + + var tplAirPopover = function () { + var $content = $('
      '); + for (var idx = 0, len = options.airPopover.length; idx < len; idx ++) { + var group = options.airPopover[idx]; + + var $group = $('
      '); + for (var i = 0, lenGroup = group[1].length; i < lenGroup; i++) { + var $button = $(tplButtonInfo[group[1][i]](lang, options)); + + $button.attr('data-name', group[1][i]); + + $group.append($button); + } + $content.append($group); + } + + return tplPopover('note-air-popover', $content.children()); + }; + + var $notePopover = $('
      '); + + $notePopover.append(tplLinkPopover()); + $notePopover.append(tplImagePopover()); + + if (options.airMode) { + $notePopover.append(tplAirPopover()); + } + + return $notePopover; + }; + + var tplHandles = function () { + return '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      '; + }; + + /** + * shortcut table template + * @param {String} title + * @param {String} body + */ + var tplShortcut = function (title, keys) { + var keyClass = 'note-shortcut-col col-xs-6 note-shortcut-'; + var body = []; + + for (var i in keys) { + if (keys.hasOwnProperty(i)) { + body.push( + '
      ' + keys[i].kbd + '
      ' + + '
      ' + keys[i].text + '
      ' + ); + } + } + + return '
      ' + title + '
      ' + + '
      ' + body.join('
      ') + '
      '; + }; + + var tplShortcutText = function (lang) { + var keys = [ + { kbd: '⌘ + B', text: lang.font.bold }, + { kbd: '⌘ + I', text: lang.font.italic }, + { kbd: '⌘ + U', text: lang.font.underline }, + { kbd: '⌘ + \\', text: lang.font.clear } + ]; + + return tplShortcut(lang.shortcut.textFormatting, keys); + }; + + var tplShortcutAction = function (lang) { + var keys = [ + { kbd: '⌘ + Z', text: lang.history.undo }, + { kbd: '⌘ + ⇧ + Z', text: lang.history.redo }, + { kbd: '⌘ + ]', text: lang.paragraph.indent }, + { kbd: '⌘ + [', text: lang.paragraph.outdent }, + { kbd: '⌘ + ENTER', text: lang.hr.insert } + ]; + + return tplShortcut(lang.shortcut.action, keys); + }; + + var tplShortcutPara = function (lang) { + var keys = [ + { kbd: '⌘ + ⇧ + L', text: lang.paragraph.left }, + { kbd: '⌘ + ⇧ + E', text: lang.paragraph.center }, + { kbd: '⌘ + ⇧ + R', text: lang.paragraph.right }, + { kbd: '⌘ + ⇧ + J', text: lang.paragraph.justify }, + { kbd: '⌘ + ⇧ + NUM7', text: lang.lists.ordered }, + { kbd: '⌘ + ⇧ + NUM8', text: lang.lists.unordered } + ]; + + return tplShortcut(lang.shortcut.paragraphFormatting, keys); + }; + + var tplShortcutStyle = function (lang) { + var keys = [ + { kbd: '⌘ + NUM0', text: lang.style.normal }, + { kbd: '⌘ + NUM1', text: lang.style.h1 }, + { kbd: '⌘ + NUM2', text: lang.style.h2 }, + { kbd: '⌘ + NUM3', text: lang.style.h3 }, + { kbd: '⌘ + NUM4', text: lang.style.h4 }, + { kbd: '⌘ + NUM5', text: lang.style.h5 }, + { kbd: '⌘ + NUM6', text: lang.style.h6 } + ]; + + return tplShortcut(lang.shortcut.documentStyle, keys); + }; + + var tplExtraShortcuts = function (lang, options) { + var extraKeys = options.extraKeys; + var keys = []; + + for (var key in extraKeys) { + if (extraKeys.hasOwnProperty(key)) { + keys.push({ kbd: key, text: extraKeys[key] }); + } + } + + return tplShortcut(lang.shortcut.extraKeys, keys); + }; + + var tplShortcutTable = function (lang, options) { + var colClass = 'class="note-shortcut note-shortcut-col col-sm-6 col-xs-12"'; + var template = [ + '
      ' + tplShortcutAction(lang, options) + '
      ' + + '
      ' + tplShortcutText(lang, options) + '
      ', + '
      ' + tplShortcutStyle(lang, options) + '
      ' + + '
      ' + tplShortcutPara(lang, options) + '
      ' + ]; + + if (options.extraKeys) { + template.push('
      ' + tplExtraShortcuts(lang, options) + '
      '); + } + + return '
      ' + + template.join('
      ') + + '
      '; + }; + + var replaceMacKeys = function (sHtml) { + return sHtml.replace(/⌘/g, 'Ctrl').replace(/⇧/g, 'Shift'); + }; + + var tplDialogInfo = { + image: function (lang, options) { + var imageLimitation = ''; + if (options.maximumImageFileSize) { + var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024)); + var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + + ' ' + ' KMGTP'[unit] + 'B'; + imageLimitation = '' + lang.image.maximumFileSize + ' : ' + readableSize + ''; + } + + var body = '
      ' + + '' + + '' + + imageLimitation + + '
      ' + + '
      ' + + '' + + '' + + '
      '; + var footer = ''; + return tplDialog('note-image-dialog', lang.image.insert, body, footer); + }, + + link: function (lang, options) { + var body = '
      ' + + '' + + '' + + '
      ' + + '
      ' + + '' + + '' + + '
      ' + + (!options.disableLinkTarget ? + '
      ' + + '' + + '
      ' : '' + ); + var footer = ''; + return tplDialog('note-link-dialog', lang.link.insert, body, footer); + }, + + help: function (lang, options) { + var body = '' + + '
      ' + lang.shortcut.shortcuts + '
      ' + + (agent.isMac ? tplShortcutTable(lang, options) : replaceMacKeys(tplShortcutTable(lang, options))) + + '

      ' + + 'Summernote 0.6.6 · ' + + 'Project · ' + + 'Issues' + + '

      '; + return tplDialog('note-help-dialog', '', body, ''); + } + }; + + var tplDialogs = function (lang, options) { + var dialogs = ''; + + $.each(tplDialogInfo, function (idx, tplDialog) { + dialogs += tplDialog(lang, options); + }); + + return '
      ' + dialogs + '
      '; + }; + + var tplStatusbar = function () { + return '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      '; + }; + + var representShortcut = function (str) { + if (agent.isMac) { + str = str.replace('CMD', '⌘').replace('SHIFT', '⇧'); + } + + return str.replace('BACKSLASH', '\\') + .replace('SLASH', '/') + .replace('LEFTBRACKET', '[') + .replace('RIGHTBRACKET', ']'); + }; + + /** + * createTooltip + * + * @param {jQuery} $container + * @param {Object} keyMap + * @param {String} [sPlacement] + */ + var createTooltip = function ($container, keyMap, sPlacement) { + var invertedKeyMap = func.invertObject(keyMap); + var $buttons = $container.find('button'); + + $buttons.each(function (i, elBtn) { + var $btn = $(elBtn); + var sShortcut = invertedKeyMap[$btn.data('event')]; + if (sShortcut) { + $btn.attr('title', function (i, v) { + return v + ' (' + representShortcut(sShortcut) + ')'; + }); + } + // bootstrap tooltip on btn-group bug + // https://github.com/twbs/bootstrap/issues/5687 + }).tooltip({ + container: 'body', + trigger: 'hover', + placement: sPlacement || 'top' + }).on('click', function () { + $(this).tooltip('hide'); + }); + }; + + // createPalette + var createPalette = function ($container, options) { + var colorInfo = options.colors; + $container.find('.note-color-palette').each(function () { + var $palette = $(this), eventName = $palette.attr('data-target-event'); + var paletteContents = []; + for (var row = 0, lenRow = colorInfo.length; row < lenRow; row++) { + var colors = colorInfo[row]; + var buttons = []; + for (var col = 0, lenCol = colors.length; col < lenCol; col++) { + var color = colors[col]; + buttons.push([''].join('')); + } + paletteContents.push('
      ' + buttons.join('') + '
      '); + } + $palette.html(paletteContents.join('')); + }); + }; + + /** + * create summernote layout (air mode) + * + * @param {jQuery} $holder + * @param {Object} options + */ + this.createLayoutByAirMode = function ($holder, options) { + var langInfo = options.langInfo; + var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc']; + var id = func.uniqueId(); + + $holder.addClass('note-air-editor note-editable'); + $holder.attr({ + 'id': 'note-editor-' + id, + 'contentEditable': true + }); + + var body = document.body; + + // create Popover + var $popover = $(tplPopovers(langInfo, options)); + $popover.addClass('note-air-layout'); + $popover.attr('id', 'note-popover-' + id); + $popover.appendTo(body); + createTooltip($popover, keyMap); + createPalette($popover, options); + + // create Handle + var $handle = $(tplHandles()); + $handle.addClass('note-air-layout'); + $handle.attr('id', 'note-handle-' + id); + $handle.appendTo(body); + + // create Dialog + var $dialog = $(tplDialogs(langInfo, options)); + $dialog.addClass('note-air-layout'); + $dialog.attr('id', 'note-dialog-' + id); + $dialog.find('button.close, a.modal-close').click(function () { + $(this).closest('.modal').modal('hide'); + }); + $dialog.appendTo(body); + }; + + /** + * create summernote layout (normal mode) + * + * @param {jQuery} $holder + * @param {Object} options + */ + this.createLayoutByFrame = function ($holder, options) { + var langInfo = options.langInfo; + + //01. create Editor + var $editor = $('
      '); + if (options.width) { + $editor.width(options.width); + } + + //02. statusbar (resizebar) + if (options.height > 0) { + $('
      ' + (options.disableResizeEditor ? '' : tplStatusbar()) + '
      ').prependTo($editor); + } + + //03. create Editable + var isContentEditable = !$holder.is(':disabled'); + var $editable = $('
      ') + .prependTo($editor); + if (options.height) { + $editable.height(options.height); + } + if (options.direction) { + $editable.attr('dir', options.direction); + } + var placeholder = $holder.attr('placeholder') || options.placeholder; + if (placeholder) { + $editable.attr('data-placeholder', placeholder); + } + + $editable.html(dom.html($holder)); + + //031. create codable + $('').prependTo($editor); + + //04. create Toolbar + var $toolbar = $('
      '); + for (var idx = 0, len = options.toolbar.length; idx < len; idx ++) { + var groupName = options.toolbar[idx][0]; + var groupButtons = options.toolbar[idx][1]; + + var $group = $('
      '); + for (var i = 0, btnLength = groupButtons.length; i < btnLength; i++) { + var buttonInfo = tplButtonInfo[groupButtons[i]]; + // continue creating toolbar even if a button doesn't exist + if (!$.isFunction(buttonInfo)) { continue; } + + var $button = $(buttonInfo(langInfo, options)); + $button.attr('data-name', groupButtons[i]); // set button's alias, becuase to get button element from $toolbar + $group.append($button); + } + $toolbar.append($group); + } + + $toolbar.prependTo($editor); + var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc']; + createPalette($toolbar, options); + createTooltip($toolbar, keyMap, 'bottom'); + + //05. create Popover + var $popover = $(tplPopovers(langInfo, options)).prependTo($editor); + createPalette($popover, options); + createTooltip($popover, keyMap); + + //06. handle(control selection, ...) + $(tplHandles()).prependTo($editor); + + //07. create Dialog + var $dialog = $(tplDialogs(langInfo, options)).prependTo($editor); + $dialog.find('button.close, a.modal-close').click(function () { + $(this).closest('.modal').modal('hide'); + }); + + //08. create Dropzone + $('
      ').prependTo($editor); + + //09. Editor/Holder switch + $editor.insertAfter($holder); + $holder.hide(); + }; + + this.hasNoteEditor = function ($holder) { + return this.noteEditorFromHolder($holder).length > 0; + }; + + this.noteEditorFromHolder = function ($holder) { + if ($holder.hasClass('note-air-editor')) { + return $holder; + } else if ($holder.next().hasClass('note-editor')) { + return $holder.next(); + } else { + return $(); + } + }; + + /** + * create summernote layout + * + * @param {jQuery} $holder + * @param {Object} options + */ + this.createLayout = function ($holder, options) { + if (options.airMode) { + this.createLayoutByAirMode($holder, options); + } else { + this.createLayoutByFrame($holder, options); + } + }; + + /** + * returns layoutInfo from holder + * + * @param {jQuery} $holder - placeholder + * @return {Object} + */ + this.layoutInfoFromHolder = function ($holder) { + var $editor = this.noteEditorFromHolder($holder); + if (!$editor.length) { + return; + } + + // connect $holder to $editor + $editor.data('holder', $holder); + + return dom.buildLayoutInfo($editor); + }; + + /** + * removeLayout + * + * @param {jQuery} $holder - placeholder + * @param {Object} layoutInfo + * @param {Object} options + * + */ + this.removeLayout = function ($holder, layoutInfo, options) { + if (options.airMode) { + $holder.removeClass('note-air-editor note-editable') + .removeAttr('id contentEditable'); + + layoutInfo.popover().remove(); + layoutInfo.handle().remove(); + layoutInfo.dialog().remove(); + } else { + $holder.html(layoutInfo.editable().html()); + + layoutInfo.editor().remove(); + $holder.show(); + } + }; + + /** + * + * @return {Object} + * @return {function(label, options=):string} return.button {@link #tplButton function to make text button} + * @return {function(iconClass, options=):string} return.iconButton {@link #tplIconButton function to make icon button} + * @return {function(className, title=, body=, footer=):string} return.dialog {@link #tplDialog function to make dialog} + */ + this.getTemplate = function () { + return { + button: tplButton, + iconButton: tplIconButton, + dialog: tplDialog + }; + }; + + /** + * add button information + * + * @param {String} name button name + * @param {Function} buttonInfo function to make button, reference to {@link #tplButton},{@link #tplIconButton} + */ + this.addButtonInfo = function (name, buttonInfo) { + tplButtonInfo[name] = buttonInfo; + }; + + /** + * + * @param {String} name + * @param {Function} dialogInfo function to make dialog, reference to {@link #tplDialog} + */ + this.addDialogInfo = function (name, dialogInfo) { + tplDialogInfo[name] = dialogInfo; + }; + }; + + + // jQuery namespace for summernote + /** + * @class $.summernote + * + * summernote attribute + * + * @mixin defaults + * @singleton + * + */ + $.summernote = $.summernote || {}; + + // extends default settings + // - $.summernote.version + // - $.summernote.options + // - $.summernote.lang + $.extend($.summernote, defaults); + + var renderer = new Renderer(); + var eventHandler = new EventHandler(); + + $.extend($.summernote, { + /** @property {Renderer} */ + renderer: renderer, + /** @property {EventHandler} */ + eventHandler: eventHandler, + /** + * @property {Object} core + * @property {core.agent} core.agent + * @property {core.dom} core.dom + * @property {core.range} core.range + */ + core: { + agent: agent, + dom: dom, + range: range + }, + /** + * @property {Object} + * pluginEvents event list for plugins + * event has name and callback function. + * + * ``` + * $.summernote.addPlugin({ + * events : { + * 'hello' : function(layoutInfo, value, $target) { + * console.log('event name is hello, value is ' + value ); + * } + * } + * }) + * ``` + * + * * event name is data-event property. + * * layoutInfo is a summernote layout information. + * * value is data-value property. + */ + pluginEvents: {}, + + plugins : [] + }); + + /** + * @method addPlugin + * + * add Plugin in Summernote + * + * Summernote can make a own plugin. + * + * ### Define plugin + * ``` + * // get template function + * var tmpl = $.summernote.renderer.getTemplate(); + * + * // add a button + * $.summernote.addPlugin({ + * buttons : { + * // "hello" is button's namespace. + * "hello" : function(lang, options) { + * // make icon button by template function + * return tmpl.iconButton('fa fa-header', { + * // callback function name when button clicked + * event : 'hello', + * // set data-value property + * value : 'hello', + * hide : true + * }); + * } + * + * }, + * + * events : { + * "hello" : function(layoutInfo, value) { + * // here is event code + * } + * } + * }); + * ``` + * ### Use a plugin in toolbar + * + * ``` + * $("#editor").summernote({ + * ... + * toolbar : [ + * // display hello plugin in toolbar + * ['group', [ 'hello' ]] + * ] + * ... + * }); + * ``` + * + * + * @param {Object} plugin + * @param {Object} [plugin.buttons] define plugin button. for detail, see to Renderer.addButtonInfo + * @param {Object} [plugin.dialogs] define plugin dialog. for detail, see to Renderer.addDialogInfo + * @param {Object} [plugin.events] add event in $.summernote.pluginEvents + * @param {Object} [plugin.langs] update $.summernote.lang + * @param {Object} [plugin.options] update $.summernote.options + */ + $.summernote.addPlugin = function (plugin) { + + // save plugin list + $.summernote.plugins.push(plugin); + + if (plugin.buttons) { + $.each(plugin.buttons, function (name, button) { + renderer.addButtonInfo(name, button); + }); + } + + if (plugin.dialogs) { + $.each(plugin.dialogs, function (name, dialog) { + renderer.addDialogInfo(name, dialog); + }); + } + + if (plugin.events) { + $.each(plugin.events, function (name, event) { + $.summernote.pluginEvents[name] = event; + }); + } + + if (plugin.langs) { + $.each(plugin.langs, function (locale, lang) { + if ($.summernote.lang[locale]) { + $.extend($.summernote.lang[locale], lang); + } + }); + } + + if (plugin.options) { + $.extend($.summernote.options, plugin.options); + } + }; + + /* + * extend $.fn + */ + $.fn.extend({ + /** + * @method + * Initialize summernote + * - create editor layout and attach Mouse and keyboard events. + * + * ``` + * $("#summernote").summernote( { options ..} ); + * ``` + * + * @member $.fn + * @param {Object|String} options reference to $.summernote.options + * @return {this} + */ + summernote: function () { + // check first argument's type + // - {String}: External API call {{module}}.{{method}} + // - {Object}: init options + var type = $.type(list.head(arguments)); + var isExternalAPICalled = type === 'string'; + var isInitOptions = type === 'object'; + + // extend default options with custom user options + var options = isInitOptions ? list.head(arguments) : {}; + options = $.extend({}, $.summernote.options, options); + + // Include langInfo in options for later use, e.g. for image drag-n-drop + // Setup language info with en-US as default + options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]); + + this.each(function (idx, holder) { + var $holder = $(holder); + + // if layout isn't created yet, createLayout and attach events + if (!renderer.hasNoteEditor($holder)) { + renderer.createLayout($holder, options); + + var layoutInfo = renderer.layoutInfoFromHolder($holder); + + eventHandler.attach(layoutInfo, options); + eventHandler.attachCustomEvent(layoutInfo, options); + + } + }); + + // callback on init + if (!isExternalAPICalled && this.length && options.oninit) { + options.oninit(); + } + + var $first = this.first(); + if ($first.length) { + var layoutInfo = renderer.layoutInfoFromHolder($first); + + // external API + if (isExternalAPICalled) { + var moduleAndMethod = list.head(list.from(arguments)); + var args = list.tail(list.from(arguments)); + + // TODO now external API only works for editor + var params = [moduleAndMethod, layoutInfo.editable()].concat(args); + return eventHandler.invoke.apply(eventHandler, params); + } else if (options.focus) { + // focus on first editable element for initialize editor + layoutInfo.editable().focus(); + } + } + + return this; + }, + + /** + * @method + * + * get the HTML contents of note or set the HTML contents of note. + * + * * get contents + * ``` + * var content = $("#summernote").code(); + * ``` + * * set contents + * + * ``` + * $("#summernote").code(html); + * ``` + * + * @member $.fn + * @param {String} [html] - HTML contents(optional, set) + * @return {this|String} - context(set) or HTML contents of note(get). + */ + code: function (html) { + // get the HTML contents of note + if (html === undefined) { + var $holder = this.first(); + if (!$holder.length) { + return; + } + + var layoutInfo = renderer.layoutInfoFromHolder($holder); + var $editable = layoutInfo && layoutInfo.editable(); + + if ($editable && $editable.length) { + var isCodeview = eventHandler.invoke('codeview.isActivated', layoutInfo); + eventHandler.invoke('codeview.sync', layoutInfo); + return isCodeview ? layoutInfo.codable().val() : + layoutInfo.editable().html(); + } + return dom.value($holder); + } + + // set the HTML contents of note + this.each(function (i, holder) { + var layoutInfo = renderer.layoutInfoFromHolder($(holder)); + var $editable = layoutInfo && layoutInfo.editable(); + if ($editable) { + $editable.html(html); + } + }); + + return this; + }, + + /** + * @method + * + * destroy Editor Layout and detach Key and Mouse Event + * + * @member $.fn + * @return {this} + */ + destroy: function () { + this.each(function (idx, holder) { + var $holder = $(holder); + + if (!renderer.hasNoteEditor($holder)) { + return; + } + + var info = renderer.layoutInfoFromHolder($holder); + var options = info.editor().data('options'); + + eventHandler.detach(info, options); + renderer.removeLayout($holder, info, options); + }); + + return this; + } + }); +})); diff --git a/vendor/assets/components/summernote/dist/summernote.min.js b/vendor/assets/components/summernote/dist/summernote.min.js new file mode 100644 index 000000000..6700fc5fb --- /dev/null +++ b/vendor/assets/components/summernote/dist/summernote.min.js @@ -0,0 +1,3 @@ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(window.jQuery)}(function(a){Array.prototype.reduce||(Array.prototype.reduce=function(a){var b,c=Object(this),d=c.length>>>0,e=0;if(2===arguments.length)b=arguments[1];else{for(;d>e&&!(e in c);)e++;if(e>=d)throw new TypeError("Reduce of empty array with no initial value");b=c[e++]}for(;d>e;e++)e in c&&(b=a(b,c[e],e,c));return b}),"function"!=typeof Array.prototype.filter&&(Array.prototype.filter=function(a){for(var b=Object(this),c=b.length>>>0,d=[],e=arguments.length>=2?arguments[1]:void 0,f=0;c>f;f++)if(f in b){var g=b[f];a.call(e,g,f,b)&&d.push(g)}return d});var b,c="function"==typeof define&&define.amd,d=function(b){var c="Comic Sans MS"===b?"Courier New":"Comic Sans MS",d=a("
      ").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body),e=d.css("fontFamily",c).width(),f=d.css("fontFamily",b+","+c).width();return d.remove(),e!==f},e={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:navigator.userAgent.indexOf("MSIE")>-1||navigator.userAgent.indexOf("Trident")>-1,isFF:navigator.userAgent.indexOf("Firefox")>-1,jqueryVersion:parseFloat(a.fn.jquery),isSupportAmd:c,hasCodeMirror:c?require.specified("CodeMirror"):!!window.CodeMirror,isFontInstalled:d,isW3CRangeSupport:!!document.createRange},f=function(){var b=function(a){return function(b){return a===b}},c=function(a,b){return a===b},d=function(a){return function(b,c){return b[a]===c[a]}},e=function(){return!0},f=function(){return!1},g=function(a){return function(){return!a.apply(a,arguments)}},h=function(a,b){return function(c){return a(c)&&b(c)}},i=function(a){return a},j=0,k=function(a){var b=++j+"";return a?a+b:b},l=function(b){var c=a(document);return{top:b.top+c.scrollTop(),left:b.left+c.scrollLeft(),width:b.right-b.left,height:b.bottom-b.top}},m=function(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[a[c]]=c);return b},n=function(a,b){return b=b||"",b+a.split(".").map(function(a){return a.substring(0,1).toUpperCase()+a.substring(1)}).join("")};return{eq:b,eq2:c,peq2:d,ok:e,fail:f,self:i,not:g,and:h,uniqueId:k,rect2bnd:l,invertObject:m,namespaceToCamel:n}}(),g=function(){var b=function(a){return a[0]},c=function(a){return a[a.length-1]},d=function(a){return a.slice(0,a.length-1)},e=function(a){return a.slice(1)},g=function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(b(e))return e}},h=function(a,b){for(var c=0,d=a.length;d>c;c++)if(!b(a[c]))return!1;return!0},i=function(b,c){return-1!==a.inArray(c,b)},j=function(a,b){return b=b||f.self,a.reduce(function(a,c){return a+b(c)},0)},k=function(a){for(var b=[],c=-1,d=a.length;++cc;c++)a[c]&&b.push(a[c]);return b},n=function(a){for(var b=[],c=0,d=a.length;d>c;c++)i(b,a[c])||b.push(a[c]);return b},o=function(a,b){var c=a.indexOf(b);return-1===c?null:a[c+1]},p=function(a,b){var c=a.indexOf(b);return-1===c?null:a[c-1]};return{head:b,last:c,initial:d,tail:e,prev:p,next:o,find:g,contains:i,all:h,sum:j,from:k,clusterBy:l,compact:m,unique:n}}(),h=String.fromCharCode(160),i="\ufeff",j=function(){var b=function(b){return b&&a(b).hasClass("note-editable")},c=function(b){return b&&a(b).hasClass("note-control-sizing")},d=function(b){var c;if(b.hasClass("note-air-editor")){var d=g.last(b.attr("id").split("-"));return c=function(b){return function(){return a(b+d)}},{editor:function(){return b},holder:function(){return b.data("holder")},editable:function(){return b},popover:c("#note-popover-"),handle:c("#note-handle-"),dialog:c("#note-dialog-")}}return c=function(a){return function(){return b.find(a)}},{editor:function(){return b},holder:function(){return b.data("holder")},dropzone:c(".note-dropzone"),toolbar:c(".note-toolbar"),editable:c(".note-editable"),codable:c(".note-codable"),statusbar:c(".note-statusbar"),popover:c(".note-popover"),handle:c(".note-handle"),dialog:c(".note-dialog")}},k=function(b){var c=a(b).closest(".note-editor, .note-air-editor, .note-air-layout");if(!c.length)return null;var e;return e=c.is(".note-editor, .note-air-editor")?c:a("#note-editor-"+g.last(c.attr("id").split("-"))),d(e)},l=function(a){return a=a.toUpperCase(),function(b){return b&&b.nodeName.toUpperCase()===a}},m=function(a){return a&&3===a.nodeType},n=function(a){return a&&/^BR|^IMG|^HR/.test(a.nodeName.toUpperCase())},o=function(a){return b(a)?!1:a&&/^DIV|^P|^LI|^H[1-7]/.test(a.nodeName.toUpperCase())},p=l("LI"),q=function(a){return o(a)&&!p(a)},r=l("TABLE"),s=function(a){return!(w(a)||t(a)||o(a)||r(a)||v(a))},t=function(a){return a&&/^UL|^OL/.test(a.nodeName.toUpperCase())},u=function(a){return a&&/^TD|^TH/.test(a.nodeName.toUpperCase())},v=l("BLOCKQUOTE"),w=function(a){return u(a)||v(a)||b(a)},x=l("A"),y=function(a){return s(a)&&!!H(a,o)},z=function(a){return s(a)&&!H(a,o)},A=l("BODY"),B=function(a,b){return a.nextSibling===b||a.previousSibling===b},C=function(a,b){b=b||f.ok;var c=[];return a.previousSibling&&b(a.previousSibling)&&c.push(a.previousSibling),c.push(a),a.nextSibling&&b(a.nextSibling)&&c.push(a.nextSibling),c},D=e.isMSIE?" ":"
      ",E=function(a){return m(a)?a.nodeValue.length:a.childNodes.length},F=function(a){var b=E(a);return 0===b?!0:j.isText(a)||1!==b||a.innerHTML!==D?!1:!0},G=function(a){n(a)||E(a)||(a.innerHTML=D)},H=function(a,c){for(;a;){if(c(a))return a;if(b(a))break;a=a.parentNode}return null},I=function(a,c){for(a=a.parentNode;a&&1===E(a);){if(c(a))return a;if(b(a))break;a=a.parentNode}return null},J=function(a,c){c=c||f.fail;var d=[];return H(a,function(a){return b(a)||d.push(a),c(a)}),d},K=function(a,b){var c=J(a);return g.last(c.filter(b))},L=function(b,c){for(var d=J(b),e=c;e;e=e.parentNode)if(a.inArray(e,d)>-1)return e;return null},M=function(a,b){b=b||f.fail;for(var c=[];a&&!b(a);)c.push(a),a=a.previousSibling;return c},N=function(a,b){b=b||f.fail;for(var c=[];a&&!b(a);)c.push(a),a=a.nextSibling;return c},O=function(a,b){var c=[];return b=b||f.ok,function d(e){a!==e&&b(e)&&c.push(e);for(var f=0,g=e.childNodes.length;g>f;f++)d(e.childNodes[f])}(a),c},P=function(b,c){var d=b.parentNode,e=a("<"+c+">")[0];return d.insertBefore(e,b),e.appendChild(b),e},Q=function(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a},R=function(b,c){return a.each(c,function(a,c){b.appendChild(c)}),b},S=function(a){return 0===a.offset},T=function(a){return a.offset===E(a.node)},U=function(a){return S(a)||T(a)},V=function(a,b){for(;a&&a!==b;){if(0!==X(a))return!1;a=a.parentNode}return!0},W=function(a,b){for(;a&&a!==b;){if(X(a)!==E(a.parentNode)-1)return!1;a=a.parentNode}return!0},X=function(a){for(var b=0;a=a.previousSibling;)b+=1;return b},Y=function(a){return!!(a&&a.childNodes&&a.childNodes.length)},Z=function(a,c){var d,e;if(0===a.offset){if(b(a.node))return null;d=a.node.parentNode,e=X(a.node)}else Y(a.node)?(d=a.node.childNodes[a.offset-1],e=E(d)):(d=a.node,e=c?0:a.offset-1);return{node:d,offset:e}},$=function(a,c){var d,e;if(E(a.node)===a.offset){if(b(a.node))return null;d=a.node.parentNode,e=X(a.node)+1}else Y(a.node)?(d=a.node.childNodes[a.offset],e=0):(d=a.node,e=c?E(a.node):a.offset+1);return{node:d,offset:e}},_=function(a,b){return a.node===b.node&&a.offset===b.offset},aa=function(a){if(m(a.node)||!Y(a.node)||F(a.node))return!0;var b=a.node.childNodes[a.offset-1],c=a.node.childNodes[a.offset];return b&&!n(b)||c&&!n(c)?!1:!0},ba=function(a,b){for(;a;){if(b(a))return a;a=Z(a)}return null},ca=function(a,b){for(;a;){if(b(a))return a;a=$(a)}return null},da=function(a){if(!m(a.node))return!1;var b=a.node.nodeValue.charAt(a.offset-1);return b&&" "!==b&&b!==h},ea=function(a,b,c,d){for(var e=a;e&&(c(e),!_(e,b));){var f=d&&a.node!==e.node&&b.node!==e.node;e=$(e,f)}},fa=function(b,c){var d=J(c,f.eq(b));return a.map(d,X).reverse()},ga=function(a,b){for(var c=a,d=0,e=b.length;e>d;d++)c=c.childNodes.length<=b[d]?c.childNodes[c.childNodes.length-1]:c.childNodes[b[d]];return c},ha=function(a,b){var c=b&&b.isSkipPaddingBlankHTML,d=b&&b.isNotSplitEdgePoint;if(U(a)&&(m(a.node)||d)){if(S(a))return a.node;if(T(a))return a.node.nextSibling}if(m(a.node))return a.node.splitText(a.offset);var e=a.node.childNodes[a.offset],f=Q(a.node.cloneNode(!1),a.node);return R(f,N(e)),c||(G(a.node),G(f)),f},ia=function(a,b,c){var d=J(b.node,f.eq(a));return d.length?1===d.length?ha(b,c):d.reduce(function(a,d){return a===b.node&&(a=ha(b,c)),ha({node:d,offset:a?j.position(a):E(d)},c)}):null},ja=function(a,b){var c,d,e=b?o:w,f=J(a.node,e),h=g.last(f)||a.node;e(h)?(c=f[f.length-2],d=h):(c=h,d=c.parentNode);var i=c&&ia(c,a,{isSkipPaddingBlankHTML:b,isNotSplitEdgePoint:b});return i||d!==a.node||(i=a.node.childNodes[a.offset]),{rightNode:i,container:d}},ka=function(a){return document.createElement(a)},la=function(a){return document.createTextNode(a)},ma=function(a,b){if(a&&a.parentNode){if(a.removeNode)return a.removeNode(b);var c=a.parentNode;if(!b){var d,e,f=[];for(d=0,e=a.childNodes.length;e>d;d++)f.push(a.childNodes[d]);for(d=0,e=f.length;e>d;d++)c.insertBefore(f[d],a)}c.removeChild(a)}},na=function(a,c){for(;a&&!b(a)&&c(a);){var d=a.parentNode;ma(a),a=d}},oa=function(a,b){if(a.nodeName.toUpperCase()===b.toUpperCase())return a;var c=ka(b);return a.style.cssText&&(c.style.cssText=a.style.cssText),R(c,g.from(a.childNodes)),Q(c,a),ma(a),c},pa=l("TEXTAREA"),qa=function(a,b){var c=pa(a[0])?a.val():a.html();return b?c.replace(/[\n\r]/g,""):c},ra=function(b,c){var d=qa(b);if(c){var e=/<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;d=d.replace(e,function(a,b,c){c=c.toUpperCase();var d=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(c)&&!!b,e=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(c);return a+(d||e?"\n":"")}),d=a.trim(d)}return d};return{NBSP_CHAR:h,ZERO_WIDTH_NBSP_CHAR:i,blank:D,emptyPara:"

      "+D+"

      ",makePredByNodeName:l,isEditable:b,isControlSizing:c,buildLayoutInfo:d,makeLayoutInfo:k,isText:m,isVoid:n,isPara:o,isPurePara:q,isInline:s,isBlock:f.not(s),isBodyInline:z,isBody:A,isParaInline:y,isList:t,isTable:r,isCell:u,isBlockquote:v,isBodyContainer:w,isAnchor:x,isDiv:l("DIV"),isLi:p,isBR:l("BR"),isSpan:l("SPAN"),isB:l("B"),isU:l("U"),isS:l("S"),isI:l("I"),isImg:l("IMG"),isTextarea:pa,isEmpty:F,isEmptyAnchor:f.and(x,F),isClosestSibling:B,withClosestSiblings:C,nodeLength:E,isLeftEdgePoint:S,isRightEdgePoint:T,isEdgePoint:U,isLeftEdgeOf:V,isRightEdgeOf:W,prevPoint:Z,nextPoint:$,isSamePoint:_,isVisiblePoint:aa,prevPointUntil:ba,nextPointUntil:ca,isCharPoint:da,walkPoint:ea,ancestor:H,singleChildAncestor:I,listAncestor:J,lastAncestor:K,listNext:N,listPrev:M,listDescendant:O,commonAncestor:L,wrap:P,insertAfter:Q,appendChildNodes:R,position:X,hasChildren:Y,makeOffsetPath:fa,fromOffsetPath:ga,splitTree:ia,splitPoint:ja,create:ka,createText:la,remove:ma,removeWhile:na,replace:oa,html:ra,value:qa}}(),k=function(){var b=function(a,b){var c,d,e=a.parentElement(),f=document.body.createTextRange(),h=g.from(e.childNodes);for(c=0;c=0)break;d=h[c]}if(0!==c&&j.isText(h[c-1])){var i=document.body.createTextRange(),k=null;i.moveToElementText(d||e),i.collapse(!d),k=d?d.nextSibling:e.firstChild;var l=a.duplicate();l.setEndPoint("StartToStart",i);for(var m=l.text.replace(/[\r\n]/g,"").length;m>k.nodeValue.length&&k.nextSibling;)m-=k.nodeValue.length,k=k.nextSibling;{k.nodeValue}b&&k.nextSibling&&j.isText(k.nextSibling)&&m===k.nodeValue.length&&(m-=k.nodeValue.length,k=k.nextSibling),e=k,c=m}return{cont:e,offset:c}},c=function(a){var b=function(a,c){var d,e;if(j.isText(a)){var h=j.listPrev(a,f.not(j.isText)),i=g.last(h).previousSibling;d=i||a.parentNode,c+=g.sum(g.tail(h),j.nodeLength),e=!i}else{if(d=a.childNodes[c]||a,j.isText(d))return b(d,0);c=0,e=!1}return{node:d,collapseToStart:e,offset:c}},c=document.body.createTextRange(),d=b(a.node,a.offset);return c.moveToElementText(d.node),c.collapse(d.collapseToStart),c.moveStart("character",d.offset),c},d=function(b,h,i,k){this.sc=b,this.so=h,this.ec=i,this.eo=k;var l=function(){if(e.isW3CRangeSupport){var a=document.createRange();return a.setStart(b,h),a.setEnd(i,k),a}var d=c({node:b,offset:h});return d.setEndPoint("EndToEnd",c({node:i,offset:k})),d};this.getPoints=function(){return{sc:b,so:h,ec:i,eo:k}},this.getStartPoint=function(){return{node:b,offset:h}},this.getEndPoint=function(){return{node:i,offset:k}},this.select=function(){var a=l();if(e.isW3CRangeSupport){var b=document.getSelection();b.rangeCount>0&&b.removeAllRanges(),b.addRange(a)}else a.select();return this},this.normalize=function(){var a=function(a){return j.isVisiblePoint(a)||(a=j.isLeftEdgePoint(a)?j.nextPointUntil(a,j.isVisiblePoint):j.prevPointUntil(a,j.isVisiblePoint)),a},b=a(this.getStartPoint()),c=a(this.getEndPoint());return new d(b.node,b.offset,c.node,c.offset)},this.nodes=function(a,b){a=a||f.ok;var c=b&&b.includeAncestor,d=b&&b.fullyContains,e=this.getStartPoint(),h=this.getEndPoint(),i=[],k=[];return j.walkPoint(e,h,function(b){if(!j.isEditable(b.node)){var e;d?(j.isLeftEdgePoint(b)&&k.push(b.node),j.isRightEdgePoint(b)&&g.contains(k,b.node)&&(e=b.node)):e=c?j.ancestor(b.node,a):b.node,e&&a(e)&&i.push(e)}},!0),g.unique(i)},this.commonAncestor=function(){return j.commonAncestor(b,i)},this.expand=function(a){var c=j.ancestor(b,a),e=j.ancestor(i,a);if(!c&&!e)return new d(b,h,i,k);var f=this.getPoints();return c&&(f.sc=c,f.so=0),e&&(f.ec=e,f.eo=j.nodeLength(e)),new d(f.sc,f.so,f.ec,f.eo)},this.collapse=function(a){return a?new d(b,h,b,h):new d(i,k,i,k)},this.splitText=function(){var a=b===i,c=this.getPoints();return j.isText(i)&&!j.isEdgePoint(this.getEndPoint())&&i.splitText(k),j.isText(b)&&!j.isEdgePoint(this.getStartPoint())&&(c.sc=b.splitText(h),c.so=0,a&&(c.ec=c.sc,c.eo=k-h)),new d(c.sc,c.so,c.ec,c.eo)},this.deleteContents=function(){if(this.isCollapsed())return this;var b=this.splitText(),c=b.nodes(null,{fullyContains:!0}),e=j.prevPointUntil(b.getStartPoint(),function(a){return!g.contains(c,a.node)}),f=[];return a.each(c,function(a,b){var c=b.parentNode;e.node!==c&&1===j.nodeLength(c)&&f.push(c),j.remove(b,!1)}),a.each(f,function(a,b){j.remove(b,!1)}),new d(e.node,e.offset,e.node,e.offset).normalize()};var m=function(a){return function(){var c=j.ancestor(b,a);return!!c&&c===j.ancestor(i,a)}};this.isOnEditable=m(j.isEditable),this.isOnList=m(j.isList),this.isOnAnchor=m(j.isAnchor),this.isOnCell=m(j.isCell),this.isLeftEdgeOf=function(a){if(!j.isLeftEdgePoint(this.getStartPoint()))return!1;var b=j.ancestor(this.sc,a);return b&&j.isLeftEdgeOf(this.sc,b)},this.isCollapsed=function(){return b===i&&h===k},this.wrapBodyInlineWithPara=function(){if(j.isBodyContainer(b)&&j.isEmpty(b))return b.innerHTML=j.emptyPara,new d(b.firstChild,0,b.firstChild,0);if(j.isParaInline(b)||j.isPara(b))return this.normalize();var a;if(j.isInline(b)){var c=j.listAncestor(b,f.not(j.isInline));a=g.last(c),j.isInline(a)||(a=c[c.length-2]||b.childNodes[h])}else a=b.childNodes[h>0?h-1:0];var e=j.listPrev(a,j.isParaInline).reverse();if(e=e.concat(j.listNext(a.nextSibling,j.isParaInline)),e.length){var i=j.wrap(g.head(e),"p");j.appendChildNodes(i,g.tail(e))}return this.normalize()},this.insertNode=function(a){var b=this.wrapBodyInlineWithPara().deleteContents(),c=j.splitPoint(b.getStartPoint(),j.isInline(a));return c.rightNode?c.rightNode.parentNode.insertBefore(a,c.rightNode):c.container.appendChild(a),a},this.pasteHTML=function(b){var c=this,d=a("
      ").html(b)[0],e=g.from(d.childNodes);return this.wrapBodyInlineWithPara().deleteContents(),a.map(e.reverse(),function(a){return c.insertNode(a)}).reverse()},this.toString=function(){var a=l();return e.isW3CRangeSupport?a.toString():a.text},this.getWordRange=function(a){var b=this.getEndPoint();if(!j.isCharPoint(b))return this;var c=j.prevPointUntil(b,function(a){return!j.isCharPoint(a)});return a&&(b=j.nextPointUntil(b,function(a){return!j.isCharPoint(a)})),new d(c.node,c.offset,b.node,b.offset)},this.bookmark=function(a){return{s:{path:j.makeOffsetPath(a,b),offset:h},e:{path:j.makeOffsetPath(a,i),offset:k}}},this.paraBookmark=function(a){return{s:{path:g.tail(j.makeOffsetPath(g.head(a),b)),offset:h},e:{path:g.tail(j.makeOffsetPath(g.last(a),i)),offset:k}}},this.getClientRects=function(){var a=l();return a.getClientRects()}};return{create:function(a,c,f,g){if(arguments.length)2===arguments.length&&(f=a,g=c);else if(e.isW3CRangeSupport){var h=document.getSelection();if(0===h.rangeCount)return null;if(j.isBody(h.anchorNode))return null;var i=h.getRangeAt(0);a=i.startContainer,c=i.startOffset,f=i.endContainer,g=i.endOffset}else{var k=document.selection.createRange(),l=k.duplicate();l.collapse(!1);var m=k;m.collapse(!0);var n=b(m,!0),o=b(l,!1);j.isText(n.node)&&j.isLeftEdgePoint(n)&&j.isTextNode(o.node)&&j.isRightEdgePoint(o)&&o.node.nextSibling===n.node&&(n=o),a=n.cont,c=n.offset,f=o.cont,g=o.offset}return new d(a,c,f,g)},createFromNode:function(a){var b=a,c=0,d=a,e=j.nodeLength(d);return j.isVoid(b)&&(c=j.listPrev(b).length-1,b=b.parentNode),j.isBR(d)?(e=j.listPrev(d).length-1,d=d.parentNode):j.isVoid(d)&&(e=j.listPrev(d).length,d=d.parentNode),this.create(b,c,d,e)},createFromBookmark:function(a,b){var c=j.fromOffsetPath(a,b.s.path),e=b.s.offset,f=j.fromOffsetPath(a,b.e.path),g=b.e.offset;return new d(c,e,f,g)},createFromParaBookmark:function(a,b){var c=a.s.offset,e=a.e.offset,f=j.fromOffsetPath(g.head(b),a.s.path),h=j.fromOffsetPath(g.last(b),a.e.path);return new d(f,c,h,e)}}}(),l={version:"0.6.6",options:{width:null,height:null,minHeight:null,maxHeight:null,focus:!1,tabsize:4,styleWithSpan:!0,disableLinkTarget:!1,disableDragAndDrop:!1,disableResizeEditor:!1,shortcuts:!0,placeholder:!1,prettifyHtml:!0,iconPrefix:"fa fa-",codemirror:{mode:"text/html",htmlMode:!0,lineNumbers:!0},lang:"en-US",direction:null,toolbar:[["style",["style"]],["font",["bold","italic","underline","clear"]],["fontname",["fontname"]],["color",["color"]],["para",["ul","ol","paragraph"]],["height",["height"]],["table",["table"]],["insert",["link","picture","hr"]],["view",["fullscreen","codeview"]],["help",["help"]]],airMode:!1,airPopover:[["color",["color"]],["font",["bold","underline","clear"]],["para",["ul","paragraph"]],["table",["table"]],["insert",["link","picture"]]],styleTags:["p","blockquote","pre","h1","h2","h3","h4","h5","h6"],defaultFontName:"Helvetica Neue",fontNames:["Arial","Arial Black","Comic Sans MS","Courier New","Helvetica Neue","Helvetica","Impact","Lucida Grande","Tahoma","Times New Roman","Verdana"],fontNamesIgnoreCheck:[],fontSizes:["8","9","10","11","12","14","18","24","36"],colors:[["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF"],["#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF"],["#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE"],["#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD"],["#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5"],["#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B"],["#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842"],["#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]],lineHeights:["1.0","1.2","1.4","1.5","1.6","1.8","2.0","3.0"],insertTableMaxSize:{col:10,row:10},maximumImageFileSize:null,oninit:null,onfocus:null,onblur:null,onenter:null,onkeyup:null,onkeydown:null,onImageUpload:null,onImageUploadError:null,onMediaDelete:null,onToolbarClick:null,onsubmit:null,onCreateLink:function(a){return-1!==a.indexOf("@")&&-1===a.indexOf(":")?a="mailto:"+a:-1===a.indexOf("://")&&(a="http://"+a),a},keyMap:{pc:{ENTER:"insertParagraph","CTRL+Z":"undo","CTRL+Y":"redo",TAB:"tab","SHIFT+TAB":"untab","CTRL+B":"bold","CTRL+I":"italic","CTRL+U":"underline","CTRL+SHIFT+S":"strikethrough","CTRL+BACKSLASH":"removeFormat","CTRL+SHIFT+L":"justifyLeft","CTRL+SHIFT+E":"justifyCenter","CTRL+SHIFT+R":"justifyRight","CTRL+SHIFT+J":"justifyFull","CTRL+SHIFT+NUM7":"insertUnorderedList","CTRL+SHIFT+NUM8":"insertOrderedList","CTRL+LEFTBRACKET":"outdent","CTRL+RIGHTBRACKET":"indent","CTRL+NUM0":"formatPara","CTRL+NUM1":"formatH1","CTRL+NUM2":"formatH2","CTRL+NUM3":"formatH3","CTRL+NUM4":"formatH4","CTRL+NUM5":"formatH5","CTRL+NUM6":"formatH6","CTRL+ENTER":"insertHorizontalRule","CTRL+K":"showLinkDialog"},mac:{ENTER:"insertParagraph","CMD+Z":"undo","CMD+SHIFT+Z":"redo",TAB:"tab","SHIFT+TAB":"untab","CMD+B":"bold","CMD+I":"italic","CMD+U":"underline","CMD+SHIFT+S":"strikethrough","CMD+BACKSLASH":"removeFormat","CMD+SHIFT+L":"justifyLeft","CMD+SHIFT+E":"justifyCenter","CMD+SHIFT+R":"justifyRight","CMD+SHIFT+J":"justifyFull","CMD+SHIFT+NUM7":"insertUnorderedList","CMD+SHIFT+NUM8":"insertOrderedList","CMD+LEFTBRACKET":"outdent","CMD+RIGHTBRACKET":"indent","CMD+NUM0":"formatPara","CMD+NUM1":"formatH1","CMD+NUM2":"formatH2","CMD+NUM3":"formatH3","CMD+NUM4":"formatH4","CMD+NUM5":"formatH5","CMD+NUM6":"formatH6","CMD+ENTER":"insertHorizontalRule","CMD+K":"showLinkDialog"}}},lang:{"en-US":{font:{bold:"Bold",italic:"Italic",underline:"Underline",clear:"Remove Font Style",height:"Line Height",name:"Font Family",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",size:"Font Size"},image:{image:"Picture",insert:"Insert Image",resizeFull:"Resize Full",resizeHalf:"Resize Half",resizeQuarter:"Resize Quarter",floatLeft:"Float Left",floatRight:"Float Right",floatNone:"Float None",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Drag image or text here",dropImage:"Drop image or Text",selectFromFiles:"Select from files",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Image URL",remove:"Remove Image"},link:{link:"Link",insert:"Insert Link",unlink:"Unlink",edit:"Edit",textToDisplay:"Text to display",url:"To what URL should this link go?",openInNewWindow:"Open in new window"},table:{table:"Table"},hr:{insert:"Insert Horizontal Rule"},style:{style:"Style",normal:"Normal",blockquote:"Quote",pre:"Code",h1:"Header 1",h2:"Header 2",h3:"Header 3",h4:"Header 4",h5:"Header 5",h6:"Header 6"},lists:{unordered:"Unordered list",ordered:"Ordered list"},options:{help:"Help",fullscreen:"Full Screen",codeview:"Code View"},paragraph:{paragraph:"Paragraph",outdent:"Outdent",indent:"Indent",left:"Align left",center:"Align center",right:"Align right",justify:"Justify full"},color:{recent:"Recent Color",more:"More Color",background:"Background Color",foreground:"Foreground Color",transparent:"Transparent",setTransparent:"Set transparent",reset:"Reset",resetToDefault:"Reset to default"},shortcut:{shortcuts:"Keyboard shortcuts",close:"Close",textFormatting:"Text formatting",action:"Action",paragraphFormatting:"Paragraph formatting",documentStyle:"Document Style",extraKeys:"Extra keys"},history:{undo:"Undo",redo:"Redo"}}}},m=function(){var b=function(b){return a.Deferred(function(c){a.extend(new FileReader,{onload:function(a){var b=a.target.result;c.resolve(b)},onerror:function(){c.reject(this)}}).readAsDataURL(b)}).promise()},c=function(b,c){return a.Deferred(function(d){var e=a("");e.one("load",function(){e.off("error abort"),d.resolve(e)}).one("error abort",function(){e.off("load").detach(),d.reject(e)}).css({display:"none"}).appendTo(document.body).attr({src:b,"data-filename":c})}).promise()};return{readFileAsDataURL:b,createImage:c}}(),n=function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SPACE:32,NUM0:48,NUM1:49,NUM2:50,NUM3:51,NUM4:52,NUM5:53,NUM6:54,NUM7:55,NUM8:56,B:66,E:69,I:73,J:74,K:75,L:76,R:82,S:83,U:85,Y:89,Z:90,SLASH:191,LEFTBRACKET:219,BACKSLASH:220,RIGHTBRACKET:221};return{isEdit:function(a){return g.contains([8,9,13,32],a)},nameFromCode:f.invertObject(a),code:a}}(),o=function(a){var b=[],c=-1,d=a[0],e=function(){var b=k.create(),c={s:{path:[],offset:0},e:{path:[],offset:0}};return{contents:a.html(),bookmark:b?b.bookmark(d):c}},f=function(b){null!==b.contents&&a.html(b.contents),null!==b.bookmark&&k.createFromBookmark(d,b.bookmark).select()};this.undo=function(){c>0&&(c--,f(b[c]))},this.redo=function(){b.length-1>c&&(c++,f(b[c]))},this.recordUndo=function(){c++,b.length>c&&(b=b.slice(0,c)),b.push(e())},this.recordUndo()},p=function(){var b=function(b,c){if(e.jqueryVersion<1.9){var d={};return a.each(c,function(a,c){d[c]=b.css(c)}),d}return b.css.call(b,c)};this.stylePara=function(b,c){a.each(b.nodes(j.isPara,{includeAncestor:!0}),function(b,d){a(d).css(c)})},this.styleNodes=function(b,c){b=b.splitText();var d=c&&c.nodeName||"SPAN",e=!(!c||!c.expandClosestSibling),h=!(!c||!c.onlyPartialContains);if(b.isCollapsed())return b.insertNode(j.create(d));var i=j.makePredByNodeName(d),k=a.map(b.nodes(j.isText,{fullyContains:!0}),function(a){return j.singleChildAncestor(a,i)||j.wrap(a,d)});if(e){if(h){var l=b.nodes();i=f.and(i,function(a){return g.contains(l,a)})}return a.map(k,function(b){var c=j.withClosestSiblings(b,i),d=g.head(c),e=g.tail(c);return a.each(e,function(a,b){j.appendChildNodes(d,b.childNodes),j.remove(b)}),g.head(c)})}return k},this.current=function(c,d){var e=a(j.isText(c.sc)?c.sc.parentNode:c.sc),f=["font-family","font-size","text-align","list-style-type","line-height"],g=b(e,f)||{};if(g["font-size"]=parseInt(g["font-size"],10),g["font-bold"]=document.queryCommandState("bold")?"bold":"normal",g["font-italic"]=document.queryCommandState("italic")?"italic":"normal",g["font-underline"]=document.queryCommandState("underline")?"underline":"normal",g["font-strikethrough"]=document.queryCommandState("strikeThrough")?"strikethrough":"normal",g["font-superscript"]=document.queryCommandState("superscript")?"superscript":"normal",g["font-subscript"]=document.queryCommandState("subscript")?"subscript":"normal",c.isOnList()){var h=["circle","disc","disc-leading-zero","square"],i=a.inArray(g["list-style-type"],h)>-1;g["list-style"]=i?"unordered":"ordered"}else g["list-style"]="none";var k=j.ancestor(c.sc,j.isPara);if(k&&k.style["line-height"])g["line-height"]=k.style.lineHeight;else{var l=parseInt(g["line-height"],10)/parseInt(g["font-size"],10);g["line-height"]=l.toFixed(1)}return g.image=j.isImg(d)&&d,g.anchor=c.isOnAnchor()&&j.ancestor(c.sc,j.isAnchor),g.ancestors=j.listAncestor(c.sc,j.isEditable),g.range=c,g}},q=function(){this.insertOrderedList=function(){this.toggleList("OL")},this.insertUnorderedList=function(){this.toggleList("UL")},this.indent=function(){var b=this,c=k.create().wrapBodyInlineWithPara(),d=c.nodes(j.isPara,{includeAncestor:!0}),e=g.clusterBy(d,f.peq2("parentNode"));a.each(e,function(c,d){var e=g.head(d);j.isLi(e)?b.wrapList(d,e.parentNode.nodeName):a.each(d,function(b,c){a(c).css("marginLeft",function(a,b){return(parseInt(b,10)||0)+25})})}),c.select()},this.outdent=function(){var b=this,c=k.create().wrapBodyInlineWithPara(),d=c.nodes(j.isPara,{includeAncestor:!0}),e=g.clusterBy(d,f.peq2("parentNode"));a.each(e,function(c,d){var e=g.head(d);j.isLi(e)?b.releaseList([d]):a.each(d,function(b,c){a(c).css("marginLeft",function(a,b){return b=parseInt(b,10)||0,b>25?b-25:""})})}),c.select()},this.toggleList=function(b){var c=this,d=k.create().wrapBodyInlineWithPara(),e=d.nodes(j.isPara,{includeAncestor:!0}),h=d.paraBookmark(e),i=g.clusterBy(e,f.peq2("parentNode"));if(g.find(e,j.isPurePara)){var l=[];a.each(i,function(a,d){l=l.concat(c.wrapList(d,b))}),e=l}else{var m=d.nodes(j.isList,{includeAncestor:!0}).filter(function(c){return!a.nodeName(c,b)});m.length?a.each(m,function(a,c){j.replace(c,b)}):e=this.releaseList(i,!0)}k.createFromParaBookmark(h,e).select()},this.wrapList=function(b,c){var d=g.head(b),e=g.last(b),f=j.isList(d.previousSibling)&&d.previousSibling,h=j.isList(e.nextSibling)&&e.nextSibling,i=f||j.insertAfter(j.create(c||"UL"),e);return b=a.map(b,function(a){return j.isPurePara(a)?j.replace(a,"LI"):a}),j.appendChildNodes(i,b),h&&(j.appendChildNodes(i,g.from(h.childNodes)),j.remove(h)),b},this.releaseList=function(b,c){var d=[];return a.each(b,function(b,e){var f=g.head(e),h=g.last(e),i=c?j.lastAncestor(f,j.isList):f.parentNode,k=i.childNodes.length>1?j.splitTree(i,{node:h.parentNode,offset:j.position(h)+1},{isSkipPaddingBlankHTML:!0}):null,l=j.splitTree(i,{node:f.parentNode,offset:j.position(f)},{isSkipPaddingBlankHTML:!0});e=c?j.listDescendant(l,j.isLi):g.from(l.childNodes).filter(j.isLi),(c||!j.isList(i.parentNode))&&(e=a.map(e,function(a){return j.replace(a,"P")})),a.each(g.from(e).reverse(),function(a,b){j.insertAfter(b,i)});var m=g.compact([i,l,k]);a.each(m,function(b,c){var d=[c].concat(j.listDescendant(c,j.isList));a.each(d.reverse(),function(a,b){j.nodeLength(b)||j.remove(b,!0)})}),d=d.concat(e)}),d}},r=function(){var b=new q;this.insertTab=function(a,b,c){var d=j.createText(new Array(c+1).join(j.NBSP_CHAR));b=b.deleteContents(),b.insertNode(d,!0),b=k.create(d,c),b.select()},this.insertParagraph=function(){var c=k.create();c=c.deleteContents(),c=c.wrapBodyInlineWithPara();var d,e=j.ancestor(c.sc,j.isPara);if(e){if(j.isEmpty(e)&&j.isLi(e))return void b.toggleList(e.parentNode.nodeName);d=j.splitTree(e,c.getStartPoint());var f=j.listDescendant(e,j.isEmptyAnchor);f=f.concat(j.listDescendant(d,j.isEmptyAnchor)),a.each(f,function(a,b){j.remove(b)})}else{var g=c.sc.childNodes[c.so];d=a(j.emptyPara)[0],g?c.sc.insertBefore(d,g):c.sc.appendChild(d)}k.create(d,0).normalize().select()}},s=function(){this.tab=function(a,b){var c=j.ancestor(a.commonAncestor(),j.isCell),d=j.ancestor(c,j.isTable),e=j.listDescendant(d,j.isCell),f=g[b?"prev":"next"](e,c);f&&k.create(f,0).select()},this.createTable=function(b,c){for(var d,e=[],f=0;b>f;f++)e.push(""+j.blank+"");d=e.join("");for(var g,h=[],i=0;c>i;i++)h.push(""+d+"");return g=h.join(""),a(''+g+"
      ")[0]}},t=function(b){var c=new p,d=new s,f=new r,h=new q;this.createRange=function(a){return a.focus(),k.create()},this.saveRange=function(a,b){a.focus(),a.data("range",k.create()),b&&k.create().collapse().select()},this.saveNode=function(a){for(var b=[],c=0,d=a[0].childNodes.length;d>c;c++)b.push(a[0].childNodes[c]);a.data("childNodes",b)},this.restoreRange=function(a){var b=a.data("range");b&&(b.select(),a.focus())},this.restoreNode=function(a){a.html("");for(var b=a.data("childNodes"),c=0,d=b.length;d>c;c++)a[0].appendChild(b[c])},this.currentStyle=function(a){var b=k.create();return b?b.isOnEditable()&&c.current(b,a):!1};var i=function(a){var c=j.makeLayoutInfo(a).holder();b.bindCustomEvent(c,a.data("callbacks"),"before.command")(a.html(),a)},l=function(a){var c=j.makeLayoutInfo(a).holder();b.bindCustomEvent(c,a.data("callbacks"),"change")(a.html(),a)};this.undo=function(a){i(a),a.data("NoteHistory").undo(),l(a)},this.redo=function(a){i(a),a.data("NoteHistory").redo(),l(a)};for(var n=this.beforeCommand=function(a){i(a)},o=this.afterCommand=function(a,b){a.data("NoteHistory").recordUndo(),b||l(a)},t=["bold","italic","underline","strikethrough","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","formatBlock","removeFormat","backColor","foreColor","insertHorizontalRule","fontName"],u=0,v=t.length;v>u;u++)this[t[u]]=function(a){return function(b,c){n(b),document.execCommand(a,!1,c),o(b,!0)}}(t[u]);this.tab=function(a,b){var c=k.create();c.isCollapsed()&&c.isOnCell()?d.tab(c):(n(a),f.insertTab(a,c,b.tabsize),o(a))},this.untab=function(){var a=k.create();a.isCollapsed()&&a.isOnCell()&&d.tab(a,!0)},this.insertParagraph=function(a){n(a),f.insertParagraph(a),o(a)},this.insertOrderedList=function(a){n(a),h.insertOrderedList(a),o(a)},this.insertUnorderedList=function(a){n(a),h.insertUnorderedList(a),o(a)},this.indent=function(a){n(a),h.indent(a),o(a)},this.outdent=function(a){n(a),h.outdent(a),o(a)},this.insertImage=function(a,b,c){m.createImage(b,c).then(function(b){n(a),b.css({display:"",width:Math.min(a.width(),b.width())}),k.create().insertNode(b[0]), +k.createFromNode(b[0]).collapse().select(),o(a)}).fail(function(){var b=a.data("callbacks");b.onImageUploadError&&b.onImageUploadError()})},this.insertNode=function(a,b){n(a);var c=this.createRange(a);c.insertNode(b),k.createFromNode(b).collapse().select(),o(a)},this.insertText=function(a,b){n(a);var c=this.createRange(a),d=c.insertNode(j.createText(b));k.create(d,j.nodeLength(d)).select(),o(a)},this.pasteHTML=function(a,b){n(a);var c=this.createRange(a),d=c.pasteHTML(b);k.createFromNode(g.last(d)).collapse().select(),o(a)},this.formatBlock=function(a,b){n(a),b=e.isMSIE?"<"+b+">":b,document.execCommand("FormatBlock",!1,b),o(a)},this.formatPara=function(a){n(a),this.formatBlock(a,"P"),o(a)};for(var u=1;6>=u;u++)this["formatH"+u]=function(a){return function(b){this.formatBlock(b,"H"+a)}}(u);this.fontSize=function(b,d){n(b);var e=this.createRange(b),f=c.styleNodes(e);a.each(f,function(b,c){a(c).css({"font-size":d+"px"})}),o(b)},this.lineHeight=function(a,b){n(a),c.stylePara(k.create(),{lineHeight:b}),o(a)},this.unlink=function(a){var b=k.create();if(b.isOnAnchor()){var c=j.ancestor(b.sc,j.isAnchor);b=k.createFromNode(c),b.select(),n(a),document.execCommand("unlink"),o(a)}},this.createLink=function(b,d,e){var f=d.url,h=d.text,i=d.newWindow,j=d.range,l=j.toString()!==h;n(b),e.onCreateLink&&(f=e.onCreateLink(f));var m;if(l){var p=j.insertNode(a(""+h+"")[0]);m=[p]}else m=c.styleNodes(j,{nodeName:"A",expandClosestSibling:!0,onlyPartialContains:!0});a.each(m,function(b,c){a(c).attr("href",f),i?a(c).attr("target","_blank"):a(c).removeAttr("target")});var q=k.createFromNode(g.head(m)).collapse(!0),r=q.getStartPoint(),s=k.createFromNode(g.last(m)).collapse(),t=s.getEndPoint();k.create(r.node,r.offset,t.node,t.offset).select(),o(b)},this.getLinkInfo=function(b){b.focus();var c=k.create().expand(j.isAnchor),d=a(g.head(c.nodes(j.isAnchor)));return{range:c,text:c.toString(),isNewWindow:d.length?"_blank"===d.attr("target"):!1,url:d.length?d.attr("href"):""}},this.color=function(a,b){var c=JSON.parse(b),d=c.foreColor,e=c.backColor;n(a),d&&document.execCommand("foreColor",!1,d),e&&document.execCommand("backColor",!1,e),o(a)},this.insertTable=function(a,b){var c=b.split("x");n(a);var e=k.create();e=e.deleteContents(),e.insertNode(d.createTable(c[0],c[1])),o(a)},this.floatMe=function(a,b,c){n(a),c.css("float",b),o(a)},this.imageShape=function(a,b,c){n(a),c.removeClass("img-rounded img-circle img-thumbnail"),b&&c.addClass(b),o(a)},this.resize=function(a,b,c){n(a),c.css({width:100*b+"%",height:""}),o(a)},this.resizeTo=function(a,b,c){var d;if(c){var e=a.y/a.x,f=b.data("ratio");d={width:f>e?a.x:a.y/f,height:f>e?a.x*f:a.y}}else d={width:a.x,height:a.y};b.css(d)},this.removeMedia=function(c,d,e){n(c),e.detach(),b.bindCustomEvent(a(),c.data("callbacks"),"media.delete").call(e,this.$editable),o(c)},this.focus=function(a){a.focus(),e.isFF&&k.createFromNode(a[0].firstChild||a[0]).collapse().select()}},u=function(){this.update=function(b,c){var d=function(b,c){b.find(".dropdown-menu li a").each(function(){var b=a(this).data("value")+""==c+"";this.className=b?"checked":""})},f=function(a,c){var d=b.find(a);d.toggleClass("active",c())};if(c.image){var g=a(c.image);f('button[data-event="imageShape"][data-value="img-rounded"]',function(){return g.hasClass("img-rounded")}),f('button[data-event="imageShape"][data-value="img-circle"]',function(){return g.hasClass("img-circle")}),f('button[data-event="imageShape"][data-value="img-thumbnail"]',function(){return g.hasClass("img-thumbnail")}),f('button[data-event="imageShape"]:not([data-value])',function(){return!g.is(".img-rounded, .img-circle, .img-thumbnail")});var h=g.css("float");f('button[data-event="floatMe"][data-value="left"]',function(){return"left"===h}),f('button[data-event="floatMe"][data-value="right"]',function(){return"right"===h}),f('button[data-event="floatMe"][data-value="none"]',function(){return"left"!==h&&"right"!==h});var i=g.attr("style");return f('button[data-event="resize"][data-value="1"]',function(){return!!/(^|\s)(max-)?width\s*:\s*100%/.test(i)}),f('button[data-event="resize"][data-value="0.5"]',function(){return!!/(^|\s)(max-)?width\s*:\s*50%/.test(i)}),void f('button[data-event="resize"][data-value="0.25"]',function(){return!!/(^|\s)(max-)?width\s*:\s*25%/.test(i)})}var j=b.find(".note-fontname");if(j.length){var k=c["font-family"];if(k){for(var l=k.split(","),m=0,n=l.length;n>m&&(k=l[m].replace(/[\'\"]/g,"").replace(/\s+$/,"").replace(/^\s+/,""),!e.isFontInstalled(k));m++);j.find(".note-current-fontname").text(k),d(j,k)}}var o=b.find(".note-fontsize");o.find(".note-current-fontsize").text(c["font-size"]),d(o,parseFloat(c["font-size"]));var p=b.find(".note-height");d(p,parseFloat(c["line-height"])),f('button[data-event="bold"]',function(){return"bold"===c["font-bold"]}),f('button[data-event="italic"]',function(){return"italic"===c["font-italic"]}),f('button[data-event="underline"]',function(){return"underline"===c["font-underline"]}),f('button[data-event="strikethrough"]',function(){return"strikethrough"===c["font-strikethrough"]}),f('button[data-event="superscript"]',function(){return"superscript"===c["font-superscript"]}),f('button[data-event="subscript"]',function(){return"subscript"===c["font-subscript"]}),f('button[data-event="justifyLeft"]',function(){return"left"===c["text-align"]||"start"===c["text-align"]}),f('button[data-event="justifyCenter"]',function(){return"center"===c["text-align"]}),f('button[data-event="justifyRight"]',function(){return"right"===c["text-align"]}),f('button[data-event="justifyFull"]',function(){return"justify"===c["text-align"]}),f('button[data-event="insertUnorderedList"]',function(){return"unordered"===c["list-style"]}),f('button[data-event="insertOrderedList"]',function(){return"ordered"===c["list-style"]})},this.updateRecentColor=function(b,c,d){var e=a(b).closest(".note-color"),f=e.find(".note-recent-color"),g=JSON.parse(f.attr("data-value"));g[c]=d,f.attr("data-value",JSON.stringify(g));var h="backColor"===c?"background-color":"color";f.find("i").css(h,d)}},v=function(){var a=new u;this.update=function(b,c){a.update(b,c)},this.updateRecentColor=function(b,c,d){a.updateRecentColor(b,c,d)},this.activate=function(a){a.find("button").not('button[data-event="codeview"]').removeClass("disabled")},this.deactivate=function(a){a.find("button").not('button[data-event="codeview"]').addClass("disabled")},this.updateFullscreen=function(a,b){var c=a.find('button[data-event="fullscreen"]');c.toggleClass("active",b)},this.updateCodeview=function(a,b){var c=a.find('button[data-event="codeview"]');c.toggleClass("active",b),b?this.deactivate(a):this.activate(a)},this.get=function(a,b){var c=j.makeLayoutInfo(a).toolbar();return c.find("[data-name="+b+"]")},this.setButtonState=function(a,b,c){c=c===!1?!1:!0;var d=this.get(a,b);d.toggleClass("active",c)}},w=24,x=function(){var b=a(document);this.attach=function(a,b){b.disableResizeEditor||a.statusbar().on("mousedown",c)};var c=function(a){a.preventDefault(),a.stopPropagation();var c=j.makeLayoutInfo(a.target).editable(),d=c.offset().top-b.scrollTop(),e=j.makeLayoutInfo(a.currentTarget||a.target),f=e.editor().data("options");b.on("mousemove",function(a){var b=a.clientY-(d+w);b=f.minHeight>0?Math.max(b,f.minHeight):b,b=f.maxHeight>0?Math.min(b,f.maxHeight):b,c.height(b)}).one("mouseup",function(){b.off("mousemove")})}},y=function(){var b=new u,c=function(b,c){var d=a(b),e=c?d.offset():d.position(),f=d.outerHeight(!0);return{left:e.left,top:e.top+f}},d=function(a,b){a.css({display:"block",left:b.left,top:b.top})},e=20;this.update=function(h,i,j){b.update(h,i);var k=h.find(".note-link-popover");if(i.anchor){var l=k.find("a"),m=a(i.anchor).attr("href"),n=a(i.anchor).attr("target");l.attr("href",m).html(m),n?l.attr("target","_blank"):l.removeAttr("target"),d(k,c(i.anchor,j))}else k.hide();var o=h.find(".note-image-popover");i.image?d(o,c(i.image,j)):o.hide();var p=h.find(".note-air-popover");if(j&&!i.range.isCollapsed()){var q=g.last(i.range.getClientRects());if(q){var r=f.rect2bnd(q);d(p,{left:Math.max(r.left+r.width/2-e,0),top:r.top+r.height})}}else p.hide()},this.updateRecentColor=function(a,b,c){a.updateRecentColor(a,b,c)},this.hide=function(a){a.children().hide()}},z=function(b){var c=a(document),d=function(d){if(j.isControlSizing(d.target)){d.preventDefault(),d.stopPropagation();var e=j.makeLayoutInfo(d.target),f=e.handle(),g=e.popover(),h=e.editable(),i=e.editor(),k=f.find(".note-control-selection").data("target"),l=a(k),m=l.offset(),n=c.scrollTop(),o=i.data("options").airMode;c.on("mousemove",function(a){b.invoke("editor.resizeTo",{x:a.clientX-m.left,y:a.clientY-(m.top-n)},l,!a.shiftKey),b.invoke("handle.update",f,{image:k},o),b.invoke("popover.update",g,{image:k},o)}).one("mouseup",function(){c.off("mousemove"),b.invoke("editor.afterCommand",h)}),l.data("ratio")||l.data("ratio",l.height()/l.width())}};this.attach=function(a){a.handle().on("mousedown",d)},this.update=function(b,c,d){var e=b.find(".note-control-selection");if(c.image){var f=a(c.image),g=d?f.offset():f.position(),h={w:f.outerWidth(!0),h:f.outerHeight(!0)};e.css({display:"block",left:g.left,top:g.top,width:h.w,height:h.h}).data("target",c.image);var i=h.w+"x"+h.h;e.find(".note-control-selection-info").text(i)}else e.hide()},this.hide=function(a){a.children().hide()}},A=function(b){var c=a(window),d=a("html, body");this.toggle=function(a){var e=a.editor(),f=a.toolbar(),g=a.editable(),h=a.codable(),i=function(a){g.css("height",a.h),h.css("height",a.h),h.data("cmeditor")&&h.data("cmeditor").setsize(null,a.h)};e.toggleClass("fullscreen");var j=e.hasClass("fullscreen");j?(g.data("orgheight",g.css("height")),c.on("resize",function(){i({h:c.height()-f.outerHeight()})}).trigger("resize"),d.css("overflow","hidden")):(c.off("resize"),i({h:g.data("orgheight")}),d.css("overflow","visible")),b.invoke("toolbar.updateFullscreen",f,j)}};e.hasCodeMirror&&(e.isSupportAmd?require(["CodeMirror"],function(a){b=a}):b=window.CodeMirror);var B=function(a){this.sync=function(b){var c=a.invoke("codeview.isActivated",b);c&&e.hasCodeMirror&&b.codable().data("cmEditor").save()},this.isActivated=function(a){var b=a.editor();return b.hasClass("codeview")},this.toggle=function(a){this.isActivated(a)?this.deactivate(a):this.activate(a)},this.activate=function(c){var d=c.editor(),f=c.toolbar(),g=c.editable(),h=c.codable(),i=c.popover(),k=c.handle(),l=d.data("options");if(h.val(j.html(g,l.prettifyHtml)),h.height(g.height()),a.invoke("toolbar.updateCodeview",f,!0),a.invoke("popover.hide",i),a.invoke("handle.hide",k),d.addClass("codeview"),h.focus(),e.hasCodeMirror){var m=b.fromTextArea(h[0],l.codemirror);if(l.codemirror.tern){var n=new b.TernServer(l.codemirror.tern);m.ternServer=n,m.on("cursorActivity",function(a){n.updateArgHints(a)})}m.setSize(null,g.outerHeight()),h.data("cmEditor",m)}},this.deactivate=function(b){var c=b.holder(),d=b.editor(),f=b.toolbar(),g=b.editable(),h=b.codable(),i=d.data("options");if(e.hasCodeMirror){var k=h.data("cmEditor");h.val(k.getValue()),k.toTextArea()}var l=j.value(h,i.prettifyHtml)||j.emptyPara,m=g.html()!==l;g.html(l),g.height(i.height?h.height():"auto"),d.removeClass("codeview"),m&&a.bindCustomEvent(c,g.data("callbacks"),"change")(g.html(),g),g.focus(),a.invoke("toolbar.updateCodeview",f,!1)}},C=function(b){var c=a(document);this.attach=function(a,b){b.airMode||b.disableDragAndDrop?c.on("drop",function(a){a.preventDefault()}):this.attachDragAndDropEvent(a,b)},this.attachDragAndDropEvent=function(d,e){var f=a(),g=d.editor(),h=d.dropzone(),i=h.find(".note-dropzone-message");c.on("dragenter",function(a){var c=b.invoke("codeview.isActivated",d),j=g.width()>0&&g.height()>0;c||f.length||!j||(g.addClass("dragover"),h.width(g.width()),h.height(g.height()),i.text(e.langInfo.image.dragImageHere)),f=f.add(a.target)}).on("dragleave",function(a){f=f.not(a.target),f.length||g.removeClass("dragover")}).on("drop",function(){f=a(),g.removeClass("dragover")}),h.on("dragenter",function(){h.addClass("hover"),i.text(e.langInfo.image.dropImage)}).on("dragleave",function(){h.removeClass("hover"),i.text(e.langInfo.image.dragImageHere)}),h.on("drop",function(c){c.preventDefault();var d=c.originalEvent.dataTransfer,e=d.getData("text/html"),f=d.getData("text/plain"),g=j.makeLayoutInfo(c.currentTarget||c.target);d&&d.files&&d.files.length?(g.editable().focus(),b.insertImages(g,d.files)):e?a(e).each(function(){g.editable().focus(),b.invoke("editor.insertNode",g.editable(),this)}):f&&(g.editable().focus(),b.invoke("editor.insertText",g.editable(),f))}).on("dragover",!1)}},D=function(a){this.attach=function(a){a.editable().on("paste",b)};var b=function(b){var c=b.originalEvent.clipboardData,d=j.makeLayoutInfo(b.currentTarget||b.target),e=d.editable();if(!c||!c.items||!c.items.length){var f=e.data("callbacks");if(!f.onImageUpload)return;return a.invoke("editor.saveNode",e),a.invoke("editor.saveRange",e),e.html(""),void setTimeout(function(){var b=e.find("img");if(b.length&&-1!==b[0].src.indexOf("data:")){for(var c=b[0].src,f=atob(c.split(",")[1]),g=new Uint8Array(f.length),h=0;h1,e=d&&g.head(c),f=d?g.last(c):g.head(c),h=this.getModule(e),i=h[f];return i&&i.apply(h,b)},this.getModule=function(a){return this.modules[a]||this.modules.editor};var c=this.bindCustomEvent=function(a,b,c){return function(){var d=b[f.namespaceToCamel(c,"on")];return d&&d.apply(a[0],arguments),a.trigger("summernote."+c,arguments)}};this.insertImages=function(d,e){var f=d.editor(),g=d.editable(),h=d.holder(),i=g.data("callbacks"),j=f.data("options");i.onImageUpload?c(h,i,"image.upload")(e):a.each(e,function(a,d){var e=d.name;j.maximumImageFileSize&&j.maximumImageFileSizel;l++)a.isFunction(a.summernote.plugins[l].init)&&a.summernote.plugins[l].init(b)},this.detach=function(a,b){a.holder().off(),a.editable().off(),a.popover().off(),a.handle().off(),a.dialog().off(),b.airMode||(a.dropzone().off(),a.toolbar().off(),a.statusbar().off())}},I=function(){var b=function(a,b){var c=b.event,d=b.value,e=b.title,f=b.className,g=b.dropdown,h=b.hide;return'"+(g||"")},c=function(a,c){var d='';return b(d,c)},d=function(b,c){var d=a('');return d.find(".popover-content").append(c),d},g=function(a,b,c,d){return'"},h={picture:function(a,b){return c(b.iconPrefix+"picture-o",{event:"showImageDialog",title:a.image.image,hide:!0})},link:function(a,b){return c(b.iconPrefix+"link",{event:"showLinkDialog",title:a.link.link,hide:!0})},table:function(a,b){var d='';return c(b.iconPrefix+"table",{title:a.table.table,dropdown:d})},style:function(a,b){var d=b.styleTags.reduce(function(b,c){var d=a.style["p"===c?"normal":c];return b+'
    9. '+("p"===c||"pre"===c?d:"<"+c+">"+d+"")+"
    10. "},"");return c(b.iconPrefix+"magic",{title:a.style.style,dropdown:'"})},fontname:function(a,c){var d=[],f=c.fontNames.reduce(function(a,b){return e.isFontInstalled(b)||-1!==c.fontNamesIgnoreCheck.indexOf(b)?(d.push(b),a+'
    11. '+b+"
    12. "):a},""),g=e.isFontInstalled(c.defaultFontName),h=g?c.defaultFontName:d[0],i=''+h+"";return b(i,{title:a.font.name,dropdown:'"})},fontsize:function(a,c){var d=c.fontSizes.reduce(function(a,b){return a+'
    13. '+b+"
    14. "},""),e='11';return b(e,{title:a.font.size,dropdown:'"})},color:function(a,c){var d='',e=b(d,{className:"note-recent-color",title:a.color.recent,event:"color",value:'{"backColor":"yellow"}'}),f='',g=b("",{title:a.color.more,dropdown:f});return e+g},bold:function(a,b){return c(b.iconPrefix+"bold",{event:"bold",title:a.font.bold})},italic:function(a,b){return c(b.iconPrefix+"italic",{event:"italic",title:a.font.italic})},underline:function(a,b){return c(b.iconPrefix+"underline",{event:"underline",title:a.font.underline})},strikethrough:function(a){return c("fa fa-strikethrough",{event:"strikethrough",title:a.font.strikethrough})},superscript:function(a){return c("fa fa-superscript",{event:"superscript",title:a.font.superscript})},subscript:function(a){return c("fa fa-subscript",{event:"subscript",title:a.font.subscript})},clear:function(a,b){return c(b.iconPrefix+"eraser",{event:"removeFormat",title:a.font.clear})},ul:function(a,b){return c(b.iconPrefix+"list-ul",{event:"insertUnorderedList",title:a.lists.unordered})},ol:function(a,b){return c(b.iconPrefix+"list-ol",{event:"insertOrderedList",title:a.lists.ordered})},paragraph:function(a,b){var d=c(b.iconPrefix+"align-left",{title:a.paragraph.left,event:"justifyLeft"}),e=c(b.iconPrefix+"align-center",{title:a.paragraph.center,event:"justifyCenter"}),f=c(b.iconPrefix+"align-right",{title:a.paragraph.right,event:"justifyRight"}),g=c(b.iconPrefix+"align-justify",{title:a.paragraph.justify,event:"justifyFull"}),h=c(b.iconPrefix+"outdent",{title:a.paragraph.outdent,event:"outdent"}),i=c(b.iconPrefix+"indent",{title:a.paragraph.indent,event:"indent"}),j='";return c(b.iconPrefix+"align-left",{title:a.paragraph.paragraph,dropdown:j})},height:function(a,b){var d=b.lineHeights.reduce(function(a,c){return a+'
    15. '+c+"
    16. "},"");return c(b.iconPrefix+"text-height",{title:a.font.height,dropdown:'"})},help:function(a,b){return c(b.iconPrefix+"question",{event:"showHelpDialog",title:a.options.help,hide:!0})},fullscreen:function(a,b){return c(b.iconPrefix+"arrows-alt",{event:"fullscreen",title:a.options.fullscreen})},codeview:function(a,b){return c(b.iconPrefix+"code",{event:"codeview",title:a.options.codeview})},undo:function(a,b){return c(b.iconPrefix+"undo",{event:"undo",title:a.history.undo})},redo:function(a,b){return c(b.iconPrefix+"repeat",{event:"redo",title:a.history.redo})},hr:function(a,b){return c(b.iconPrefix+"minus",{event:"insertHorizontalRule",title:a.hr.insert})}},i=function(e,f){var g=function(){var a=c(f.iconPrefix+"edit",{title:e.link.edit,event:"showLinkDialog",hide:!0}),b=c(f.iconPrefix+"unlink",{title:e.link.unlink,event:"unlink"}),g='www.google.com  
      '+a+b+"
      ";return d("note-link-popover",g)},i=function(){var a=b('100%',{title:e.image.resizeFull,event:"resize",value:"1"}),g=b('50%',{title:e.image.resizeHalf,event:"resize",value:"0.5"}),h=b('25%',{title:e.image.resizeQuarter,event:"resize",value:"0.25"}),i=c(f.iconPrefix+"align-left",{title:e.image.floatLeft,event:"floatMe",value:"left"}),j=c(f.iconPrefix+"align-right",{title:e.image.floatRight,event:"floatMe",value:"right"}),k=c(f.iconPrefix+"align-justify",{title:e.image.floatNone,event:"floatMe",value:"none"}),l=c(f.iconPrefix+"square",{title:e.image.shapeRounded,event:"imageShape",value:"img-rounded"}),m=c(f.iconPrefix+"circle-o",{title:e.image.shapeCircle,event:"imageShape",value:"img-circle"}),n=c(f.iconPrefix+"picture-o",{title:e.image.shapeThumbnail,event:"imageShape",value:"img-thumbnail"}),o=c(f.iconPrefix+"times",{title:e.image.shapeNone,event:"imageShape",value:""}),p=c(f.iconPrefix+"trash-o",{title:e.image.remove,event:"removeMedia",value:"none"}),q='
      '+a+g+h+'
      '+i+j+k+'
      '+l+m+n+o+'
      '+p+"
      ";return d("note-image-popover",q)},j=function(){for(var b=a("
      "),c=0,g=f.airPopover.length;g>c;c++){for(var i=f.airPopover[c],j=a('
      '),k=0,l=i[1].length;l>k;k++){var m=a(h[i[1][k]](e,f));m.attr("data-name",i[1][k]),j.append(m)}b.append(j)}return d("note-air-popover",b.children())},k=a('
      ');return k.append(g()),k.append(i()),f.airMode&&k.append(j()),k},k=function(){return'
      '},l=function(a,b){var c="note-shortcut-col col-xs-6 note-shortcut-",d=[];for(var e in b)b.hasOwnProperty(e)&&d.push('
      '+b[e].kbd+'
      '+b[e].text+"
      ");return'
      '+a+'
      '+d.join('
      ')+"
      "},m=function(a){var b=[{kbd:"⌘ + B",text:a.font.bold},{kbd:"⌘ + I",text:a.font.italic},{kbd:"⌘ + U",text:a.font.underline},{kbd:"⌘ + \\",text:a.font.clear}];return l(a.shortcut.textFormatting,b)},n=function(a){var b=[{kbd:"⌘ + Z",text:a.history.undo},{kbd:"⌘ + ⇧ + Z",text:a.history.redo +},{kbd:"⌘ + ]",text:a.paragraph.indent},{kbd:"⌘ + [",text:a.paragraph.outdent},{kbd:"⌘ + ENTER",text:a.hr.insert}];return l(a.shortcut.action,b)},o=function(a){var b=[{kbd:"⌘ + ⇧ + L",text:a.paragraph.left},{kbd:"⌘ + ⇧ + E",text:a.paragraph.center},{kbd:"⌘ + ⇧ + R",text:a.paragraph.right},{kbd:"⌘ + ⇧ + J",text:a.paragraph.justify},{kbd:"⌘ + ⇧ + NUM7",text:a.lists.ordered},{kbd:"⌘ + ⇧ + NUM8",text:a.lists.unordered}];return l(a.shortcut.paragraphFormatting,b)},p=function(a){var b=[{kbd:"⌘ + NUM0",text:a.style.normal},{kbd:"⌘ + NUM1",text:a.style.h1},{kbd:"⌘ + NUM2",text:a.style.h2},{kbd:"⌘ + NUM3",text:a.style.h3},{kbd:"⌘ + NUM4",text:a.style.h4},{kbd:"⌘ + NUM5",text:a.style.h5},{kbd:"⌘ + NUM6",text:a.style.h6}];return l(a.shortcut.documentStyle,b)},q=function(a,b){var c=b.extraKeys,d=[];for(var e in c)c.hasOwnProperty(e)&&d.push({kbd:e,text:c[e]});return l(a.shortcut.extraKeys,d)},r=function(a,b){var c='class="note-shortcut note-shortcut-col col-sm-6 col-xs-12"',d=["
      "+n(a,b)+"
      "+m(a,b)+"
      ","
      "+p(a,b)+"
      "+o(a,b)+"
      "];return b.extraKeys&&d.push("
      "+q(a,b)+"
      "),'
      '+d.join('
      ')+"
      "},s=function(a){return a.replace(/⌘/g,"Ctrl").replace(/⇧/g,"Shift")},t={image:function(a,b){var c="";if(b.maximumImageFileSize){var d=Math.floor(Math.log(b.maximumImageFileSize)/Math.log(1024)),e=1*(b.maximumImageFileSize/Math.pow(1024,d)).toFixed(2)+" "+" KMGTP"[d]+"B";c=""+a.image.maximumFileSize+" : "+e+""}var f='
      '+c+'
      ',h='";return g("note-image-dialog",a.image.insert,f,h)},link:function(a,b){var c='
      '+(b.disableLinkTarget?"":'
      "),d='";return g("note-link-dialog",a.link.insert,c,d)},help:function(a,b){var c='
      '+a.shortcut.shortcuts+"
      "+(e.isMac?r(a,b):s(r(a,b)))+'

      Summernote 0.6.6 · Project · Issues

      ';return g("note-help-dialog","",c,"")}},u=function(b,c){var d="";return a.each(t,function(a,e){d+=e(b,c)}),'
      '+d+"
      "},v=function(){return'
      '},w=function(a){return e.isMac&&(a=a.replace("CMD","⌘").replace("SHIFT","⇧")),a.replace("BACKSLASH","\\").replace("SLASH","/").replace("LEFTBRACKET","[").replace("RIGHTBRACKET","]")},x=function(b,c,d){var e=f.invertObject(c),g=b.find("button");g.each(function(b,c){var d=a(c),f=e[d.data("event")];f&&d.attr("title",function(a,b){return b+" ("+w(f)+")"})}).tooltip({container:"body",trigger:"hover",placement:d||"top"}).on("click",function(){a(this).tooltip("hide")})},y=function(b,c){var d=c.colors;b.find(".note-color-palette").each(function(){for(var b=a(this),c=b.attr("data-target-event"),e=[],f=0,g=d.length;g>f;f++){for(var h=d[f],i=[],j=0,k=h.length;k>j;j++){var l=h[j];i.push([''].join(""))}e.push('
      '+i.join("")+"
      ")}b.html(e.join(""))})};this.createLayoutByAirMode=function(b,c){var d=c.langInfo,g=c.keyMap[e.isMac?"mac":"pc"],h=f.uniqueId();b.addClass("note-air-editor note-editable"),b.attr({id:"note-editor-"+h,contentEditable:!0});var j=document.body,l=a(i(d,c));l.addClass("note-air-layout"),l.attr("id","note-popover-"+h),l.appendTo(j),x(l,g),y(l,c);var m=a(k());m.addClass("note-air-layout"),m.attr("id","note-handle-"+h),m.appendTo(j);var n=a(u(d,c));n.addClass("note-air-layout"),n.attr("id","note-dialog-"+h),n.find("button.close, a.modal-close").click(function(){a(this).closest(".modal").modal("hide")}),n.appendTo(j)},this.createLayoutByFrame=function(b,c){var d=c.langInfo,f=a('
      ');c.width&&f.width(c.width),c.height>0&&a('
      '+(c.disableResizeEditor?"":v())+"
      ").prependTo(f);var g=!b.is(":disabled"),l=a('
      ').prependTo(f);c.height&&l.height(c.height),c.direction&&l.attr("dir",c.direction);var m=b.attr("placeholder")||c.placeholder;m&&l.attr("data-placeholder",m),l.html(j.html(b)),a('').prependTo(f);for(var n=a('
      '),o=0,p=c.toolbar.length;p>o;o++){for(var q=c.toolbar[o][0],r=c.toolbar[o][1],s=a('
      '),t=0,w=r.length;w>t;t++){var z=h[r[t]];if(a.isFunction(z)){var A=a(z(d,c));A.attr("data-name",r[t]),s.append(A)}}n.append(s)}n.prependTo(f);var B=c.keyMap[e.isMac?"mac":"pc"];y(n,c),x(n,B,"bottom");var C=a(i(d,c)).prependTo(f);y(C,c),x(C,B),a(k()).prependTo(f);var D=a(u(d,c)).prependTo(f);D.find("button.close, a.modal-close").click(function(){a(this).closest(".modal").modal("hide")}),a('
      ').prependTo(f),f.insertAfter(b),b.hide()},this.hasNoteEditor=function(a){return this.noteEditorFromHolder(a).length>0},this.noteEditorFromHolder=function(b){return b.hasClass("note-air-editor")?b:b.next().hasClass("note-editor")?b.next():a()},this.createLayout=function(a,b){b.airMode?this.createLayoutByAirMode(a,b):this.createLayoutByFrame(a,b)},this.layoutInfoFromHolder=function(a){var b=this.noteEditorFromHolder(a);if(b.length)return b.data("holder",a),j.buildLayoutInfo(b)},this.removeLayout=function(a,b,c){c.airMode?(a.removeClass("note-air-editor note-editable").removeAttr("id contentEditable"),b.popover().remove(),b.handle().remove(),b.dialog().remove()):(a.html(b.editable().html()),b.editor().remove(),a.show())},this.getTemplate=function(){return{button:b,iconButton:c,dialog:g}},this.addButtonInfo=function(a,b){h[a]=b},this.addDialogInfo=function(a,b){t[a]=b}};a.summernote=a.summernote||{},a.extend(a.summernote,l);var J=new I,K=new H;a.extend(a.summernote,{renderer:J,eventHandler:K,core:{agent:e,dom:j,range:k},pluginEvents:{},plugins:[]}),a.summernote.addPlugin=function(b){a.summernote.plugins.push(b),b.buttons&&a.each(b.buttons,function(a,b){J.addButtonInfo(a,b)}),b.dialogs&&a.each(b.dialogs,function(a,b){J.addDialogInfo(a,b)}),b.events&&a.each(b.events,function(b,c){a.summernote.pluginEvents[b]=c}),b.langs&&a.each(b.langs,function(b,c){a.summernote.lang[b]&&a.extend(a.summernote.lang[b],c)}),b.options&&a.extend(a.summernote.options,b.options)},a.fn.extend({summernote:function(){var b=a.type(g.head(arguments)),c="string"===b,d="object"===b,e=d?g.head(arguments):{};e=a.extend({},a.summernote.options,e),e.langInfo=a.extend(!0,{},a.summernote.lang["en-US"],a.summernote.lang[e.lang]),this.each(function(b,c){var d=a(c);if(!J.hasNoteEditor(d)){J.createLayout(d,e);var f=J.layoutInfoFromHolder(d);K.attach(f,e),K.attachCustomEvent(f,e)}}),!c&&this.length&&e.oninit&&e.oninit();var f=this.first();if(f.length){var h=J.layoutInfoFromHolder(f);if(c){var i=g.head(g.from(arguments)),j=g.tail(g.from(arguments)),k=[i,h.editable()].concat(j);return K.invoke.apply(K,k)}e.focus&&h.editable().focus()}return this},code:function(b){if(void 0===b){var c=this.first();if(!c.length)return;var d=J.layoutInfoFromHolder(c),e=d&&d.editable();if(e&&e.length){var f=K.invoke("codeview.isActivated",d);return K.invoke("codeview.sync",d),f?d.codable().val():d.editable().html()}return j.value(c)}return this.each(function(c,d){var e=J.layoutInfoFromHolder(a(d)),f=e&&e.editable();f&&f.html(b)}),this},destroy:function(){return this.each(function(b,c){var d=a(c);if(J.hasNoteEditor(d)){var e=J.layoutInfoFromHolder(d),f=e.editor().data("options");K.detach(e,f),J.removeLayout(d,e,f)}}),this}})}); \ No newline at end of file diff --git a/vendor/assets/components/summernote/examples/airmode.html b/vendor/assets/components/summernote/examples/airmode.html new file mode 100644 index 000000000..8d5667825 --- /dev/null +++ b/vendor/assets/components/summernote/examples/airmode.html @@ -0,0 +1,43 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      In computer science, functional programming is a programming paradigm, a style of building the structure and elements of computer programs, that treats computation as the evaluation of mathematical functions and avoids state and mutable data. Functional programming emphasizes functions that produce results that depend only on their inputs and not on the program state—i.e. pure mathematical functions. It is a declarative programming paradigm, which means programming is done with expressions. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) both times. Eliminating side effects, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming.

      +
      + + diff --git a/vendor/assets/components/summernote/examples/bs2.html b/vendor/assets/components/summernote/examples/bs2.html new file mode 100644 index 000000000..2143c3957 --- /dev/null +++ b/vendor/assets/components/summernote/examples/bs2.html @@ -0,0 +1,28 @@ + + + + + + summernote + + + + + + + + + + + + + + + +
      + + diff --git a/vendor/assets/components/summernote/examples/bs2fa4.html b/vendor/assets/components/summernote/examples/bs2fa4.html new file mode 100644 index 000000000..e5839ab11 --- /dev/null +++ b/vendor/assets/components/summernote/examples/bs2fa4.html @@ -0,0 +1,28 @@ + + + + + + summernote + + + + + + + + + + + + + + + +
      + + diff --git a/vendor/assets/components/summernote/examples/bs301fa4.html b/vendor/assets/components/summernote/examples/bs301fa4.html new file mode 100644 index 000000000..b5d0a40e4 --- /dev/null +++ b/vendor/assets/components/summernote/examples/bs301fa4.html @@ -0,0 +1,50 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      Lately library + Bootstrap v3.0.1 + font-awesome v4.0.3 + CodeMirror v3.20.0 +

      +
      +
      + + \ No newline at end of file diff --git a/vendor/assets/components/summernote/examples/codemirror.html b/vendor/assets/components/summernote/examples/codemirror.html new file mode 100644 index 000000000..929ed92f8 --- /dev/null +++ b/vendor/assets/components/summernote/examples/codemirror.html @@ -0,0 +1,42 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/external-api.html b/vendor/assets/components/summernote/examples/external-api.html new file mode 100644 index 000000000..8227351c5 --- /dev/null +++ b/vendor/assets/components/summernote/examples/external-api.html @@ -0,0 +1,399 @@ + + + + + jquery old + + + + + + + + + + + + + + + + +
      +

      External API Sample

      + +
      + My Custom Toolbar +
      + + + +
      + +
      + + + + +
      +
      +
      +

      + External API

      + +

      + You can use summernote's external api. see below code

      + +
      +
      $(".summernote").summernote("module.method"[, params...]); 
      +
      +

      + Default module is 'editor'

      + +
      +
      $(".summernote").summernote("editor.bold"); == $(".summernote").summernote("bold");
      +
      + + + +

      + + + Use API List

      + +

      + editor.saveRange + - save current range

      + +

      + editor.createRange + - create range

      + +

      + editor.saveNode + - save current node list to $editable.data('childNodes')

      + +

      + editor.restoreRange + - restore lately range

      + +

      + edtior.restoreNode + - restore lately node list

      + +

      + editor.undo + - Undo

      + +

      + editor.redo + - Redo

      + +

      + editor.beforeCommand +

      + +

      + editor.afterCommand +

      + +

      + editor.bold +

      + +

      + editor.italic +

      + +

      + editor.underline +

      + +

      + editor.strikethrough +

      + +

      + editor.formatBlock +

      + +

      + editor.superscript +

      + +

      + editor.subscript +

      + +

      + editor.justifyLeft +

      + +

      + editor.justifyRight +

      + +

      + editor.justifyCenter +

      + +

      + editor.removeFormat +

      + +

      + editor.backColor +

      + +

      + editor.foreColor +

      + +

      + editor.fontName +

      + +

      + editor.tab +

      + +

      + editor.untab +

      + +

      + editor.insertParagraph +

      + +

      + editor.insertOrderedList +

      + +

      + editor.insertUnorderedList +

      + +

      + editor.indent +

      + +

      + editor.outdent +

      + +

      + editor.insertImage +

      + +

      + editor.insertNode +

      + +

      + editor.insertText +

      + +

      + editor.formatPara +

      + +

      + editor.formatH1~6 +

      + +

      + editor.fontSize +

      + +

      + editor.lineHeight +

      + +

      + editor.unlink +

      + +

      + editor.createLink +

      + +

      + editor.getLinkInfo +

      + +

      + editor.insertTable +

      + +

      + editor.floatMe +

      + +

      + editor.resize +

      + +

      + editor.removeMedia +

      + +
      +
      + + diff --git a/vendor/assets/components/summernote/examples/get-button.html b/vendor/assets/components/summernote/examples/get-button.html new file mode 100644 index 000000000..6be36605a --- /dev/null +++ b/vendor/assets/components/summernote/examples/get-button.html @@ -0,0 +1,74 @@ + + + + + How to get a button in toolbar + + + + + + + + + + + + + + + +
      +

      How to get a button in toolbar

      +
      +

      Button is in a toolbar.

      + +

      When change event occurs, some buttons will change background color.

      + +
      +
      + + + diff --git a/vendor/assets/components/summernote/examples/index.html b/vendor/assets/components/summernote/examples/index.html new file mode 100644 index 000000000..cef57a49d --- /dev/null +++ b/vendor/assets/components/summernote/examples/index.html @@ -0,0 +1,58 @@ + + + + + + summernote + + + +
      +

      Summnote Sample

      + +

      CodeMirror as Codeview + Bootstrap v3.0.3 + font-awesome v4.0.3 + CodeMirror v3.20.0 +

      + +

      Air Mode + Bootstrap v3.1.1 + font-awesome v4.0.3 + CodeMirror v3.20.0 +

      + +

      Summernote with Form submit. + Bootstrap v3.0.1 + font-awesome v4.0.3 + Textarea +

      + +

      Right to left + Bootstrap v3.0.1 + font-awesome v4.0.3 +

      + +

      Lang (ko-KR) + Bootstrap v3.0.1 + font-awesome v4.0.3 +

      + +

      Plugin + Bootstrap v3.0.3 + font-awesome v4.0.3 +

      + +

      Old library + Bootstrap v2.3.1 + font-awesome v3.1.1 +

      + +

      Old library 2 + Bootstrap v2.3.1 + font-awesome v4.0.3 +

      + +
      + + diff --git a/vendor/assets/components/summernote/examples/jquery-custom-event.html b/vendor/assets/components/summernote/examples/jquery-custom-event.html new file mode 100644 index 000000000..9ff27a433 --- /dev/null +++ b/vendor/assets/components/summernote/examples/jquery-custom-event.html @@ -0,0 +1,124 @@ + + + + + jquery old + + + + + + + + + + + + + + + +
      +

      jQuery Custom Event Sample

      +
      +
      + +

      + How to set custom event

      + +

      + current style

      + +
      $(".summernote").summernote({
      +  onfocus : function(e) {
      +    // to do something
      +  }
      +});
      + +

      + jquery style

      + +
      $(".summernote").on("summernote.focus", function(e) {
      +  // to do something
      +});
      + +

      + Event List

      + +

      + oninit

      + +
      $(".summernote").on("summernote.init", ...);
      + +

      + onfocus

      + +
      $(".summernote").on("summernote.focus", ...);
      + +

      + onenter

      + +
      $(".summernote").on("summernote.enter", ...);
      + +

      + onblur

      + +
      $(".summernote").on("summernote.blur", ...);
      + +

      + onkeyup

      + +
      $(".summernote").on("summernote.keyup", ...);
      + +

      + onkeydown

      + +
      $(".summernote").on("summernote.keydown", ...);
      + +

      + onChange

      + +
      $(".summernote").on("summernote.change", ...);
      + +
      + + +
      +
      + + + diff --git a/vendor/assets/components/summernote/examples/jquery18lt.html b/vendor/assets/components/summernote/examples/jquery18lt.html new file mode 100644 index 000000000..ebec03e3e --- /dev/null +++ b/vendor/assets/components/summernote/examples/jquery18lt.html @@ -0,0 +1,26 @@ + + + + + jquery old + + + + + + + + + + + + + + +
      + + diff --git a/vendor/assets/components/summernote/examples/lang.html b/vendor/assets/components/summernote/examples/lang.html new file mode 100644 index 000000000..54786d8dc --- /dev/null +++ b/vendor/assets/components/summernote/examples/lang.html @@ -0,0 +1,33 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/nativestyle.html b/vendor/assets/components/summernote/examples/nativestyle.html new file mode 100644 index 000000000..9758a75b3 --- /dev/null +++ b/vendor/assets/components/summernote/examples/nativestyle.html @@ -0,0 +1,32 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/ondialog-multitab.html b/vendor/assets/components/summernote/examples/ondialog-multitab.html new file mode 100644 index 000000000..f3fa92256 --- /dev/null +++ b/vendor/assets/components/summernote/examples/ondialog-multitab.html @@ -0,0 +1,85 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/ondialog.html b/vendor/assets/components/summernote/examples/ondialog.html new file mode 100644 index 000000000..5f57bd36d --- /dev/null +++ b/vendor/assets/components/summernote/examples/ondialog.html @@ -0,0 +1,58 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/plugin-fontstyle.html b/vendor/assets/components/summernote/examples/plugin-fontstyle.html new file mode 100644 index 000000000..225d435a0 --- /dev/null +++ b/vendor/assets/components/summernote/examples/plugin-fontstyle.html @@ -0,0 +1,48 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/plugin-hello.html b/vendor/assets/components/summernote/examples/plugin-hello.html new file mode 100644 index 000000000..186585196 --- /dev/null +++ b/vendor/assets/components/summernote/examples/plugin-hello.html @@ -0,0 +1,50 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/plugin-video.html b/vendor/assets/components/summernote/examples/plugin-video.html new file mode 100644 index 000000000..1a49c9f4b --- /dev/null +++ b/vendor/assets/components/summernote/examples/plugin-video.html @@ -0,0 +1,50 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/rtl.html b/vendor/assets/components/summernote/examples/rtl.html new file mode 100644 index 000000000..ad281a3b5 --- /dev/null +++ b/vendor/assets/components/summernote/examples/rtl.html @@ -0,0 +1,32 @@ + + + + + + summernote + + + + + + + + + + + + + + + + + + diff --git a/vendor/assets/components/summernote/examples/textarea.html b/vendor/assets/components/summernote/examples/textarea.html new file mode 100644 index 000000000..c35260959 --- /dev/null +++ b/vendor/assets/components/summernote/examples/textarea.html @@ -0,0 +1,38 @@ + + + + + + summernote + + + + + + + + + + + + + + + +
      + + +
      + + diff --git a/vendor/assets/components/summernote/grunts/grunt-build.js b/vendor/assets/components/summernote/grunts/grunt-build.js new file mode 100644 index 000000000..ef7264471 --- /dev/null +++ b/vendor/assets/components/summernote/grunts/grunt-build.js @@ -0,0 +1,78 @@ +module.exports = function (grunt) { + 'use strict'; + + var requirejs = require('requirejs'); + var path = require('path'); + + var rDefineStart = /define\([^{]*?{/; + var rDefineEndWithReturn = /\s*return\s+[^\}]+(\}\);[^\w\}]*)$/; + var rDefineEnd = /\}\);[^}\w]*$/; + + grunt.registerMultiTask('build', 'concatenate source: summernote.js', function () { + + /** + * Strip all definitions generated by requirejs + * + * @param {String} name + * @param {String} path + * @param {String} contents The contents to be written (including their AMD wrappers) + */ + var convert = function (name, path, contents) { + contents = contents.replace(rDefineStart, ''); + + if (rDefineEndWithReturn.test(contents)) { + contents = contents.replace(rDefineEndWithReturn, ''); + } else { + contents = contents.replace(rDefineEnd, ''); + } + return contents; + }; + + var outputPath = this.data.outFile; + /** + * Handle final output from the optimizer + */ + var out = function (compiled) { + // 01. Embed version + var version = grunt.config('pkg.version'); + compiled = compiled.replace(/@VERSION/g, version); + + // 02. Embed Date + var date = (new Date()).toISOString().replace(/:\d+\.\d+Z$/, 'Z'); + compiled = compiled.replace(/@DATE/g, date); + + grunt.file.write(outputPath, compiled); + }; + + var config = { + name: 'summernote/summernote', + baseUrl: this.data.baseUrl, + out: out, + optimize: 'none', + wrap: { + startFile: path.join(this.data.baseUrl, this.data.startFile), + endFile: path.join(this.data.baseUrl, this.data.endFile) + }, + findNestedDependencies: true, + skipSemiColonInsertion: true, + onBuildWrite: convert, + excludeShallow: ['jquery', 'CodeMirror', 'app'], + paths: { + jquery: 'empty:', + CodeMirror: 'empty:' + }, + packages: [{ + name: 'summernote', + location: './', + main: 'summernote' + }] + }; + + var done = this.async(); + requirejs.optimize(config, function () { + done(); + }, function (err) { + done(err); + }); + }); +}; diff --git a/vendor/assets/components/summernote/index.html b/vendor/assets/components/summernote/index.html new file mode 100644 index 000000000..677a8d173 --- /dev/null +++ b/vendor/assets/components/summernote/index.html @@ -0,0 +1,46 @@ + + + + + + summernote + + + + + + + + + + + + + +
      +

      Lately library + Bootstrap v3.1.1 + font-awesome v4.0.3 + CodeMirror v3.20.0 +

      +
      +
      + + + + diff --git a/vendor/assets/components/summernote/lang/summernote-ar-AR.js b/vendor/assets/components/summernote/lang/summernote-ar-AR.js new file mode 100644 index 000000000..3bf1959a0 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ar-AR.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ar-AR': { + font: { + bold: 'عريض', + italic: 'مائل', + underline: 'تحته خط', + clear: 'مسح التنسيق', + height: 'إرتفاع السطر', + name: 'الخط', + strikethrough: 'فى وسطه خط', + size: 'الحجم' + }, + image: { + image: 'صورة', + insert: 'إضافة صورة', + resizeFull: 'الحجم بالكامل', + resizeHalf: 'تصغير للنصف', + resizeQuarter: 'تصغير للربع', + floatLeft: 'تطيير لليسار', + floatRight: 'تطيير لليمين', + floatNone: 'ثابته', + dragImageHere: 'إدرج الصورة هنا', + selectFromFiles: 'حدد ملف', + url: 'رابط الصورة', + remove: 'حذف الصورة' + }, + link: { + link: 'رابط رابط', + insert: 'إدراج', + unlink: 'حذف الرابط', + edit: 'تعديل', + textToDisplay: 'النص', + url: 'مسار الرابط', + openInNewWindow: 'فتح في نافذة جديدة' + }, + table: { + table: 'جدول' + }, + hr: { + insert: 'إدراج خط أفقي' + }, + style: { + style: 'تنسيق', + normal: 'عادي', + blockquote: 'إقتباس', + pre: 'شفيرة', + h1: 'عنوان رئيسي 1', + h2: 'عنوان رئيسي 2', + h3: 'عنوان رئيسي 3', + h4: 'عنوان رئيسي 4', + h5: 'عنوان رئيسي 5', + h6: 'عنوان رئيسي 6' + }, + lists: { + unordered: 'قائمة مُنقطة', + ordered: 'قائمة مُرقمة' + }, + options: { + help: 'مساعدة', + fullscreen: 'حجم الشاشة بالكامل', + codeview: 'شفيرة المصدر' + }, + paragraph: { + paragraph: 'فقرة', + outdent: 'محاذاة للخارج', + indent: 'محاذاة للداخل', + left: 'محاذاة لليسار', + center: 'توسيط', + right: 'محاذاة لليمين', + justify: 'ملئ السطر' + }, + color: { + recent: 'تم إستخدامه', + more: 'المزيد', + background: 'لون الخلفية', + foreground: 'لون النص', + transparent: 'شفاف', + setTransparent: 'بدون خلفية', + reset: 'إعادة الضبط', + resetToDefault: 'إعادة الضبط' + }, + shortcut: { + shortcuts: 'إختصارات', + close: 'غلق', + textFormatting: 'تنسيق النص', + action: 'Action', + paragraphFormatting: 'تنسيق الفقرة', + documentStyle: 'تنسيق المستند' + }, + history: { + undo: 'تراجع', + redo: 'إعادة' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-ca-ES.js b/vendor/assets/components/summernote/lang/summernote-ca-ES.js new file mode 100644 index 000000000..b39b1d1e8 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ca-ES.js @@ -0,0 +1,95 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ca-ES': { + font: { + bold: 'Negreta', + italic: 'Cursiva', + underline: 'Subratllat', + clear: 'Treure estil de lletra', + height: 'Alçada de línia', + strikethrough: 'Ratllat', + size: 'Mida de lletra' + }, + image: { + image: 'Imatge', + insert: 'Inserir imatge', + resizeFull: 'Redimensionar a mida completa', + resizeHalf: 'Redimensionar a la meitat', + resizeQuarter: 'Redimensionar a un quart', + floatLeft: 'Surar a l%27esquerra', + floatRight: 'Surar a la dreta', + floatNone: 'No surar', + dragImageHere: 'Arrossegueu una imatge aquí', + selectFromFiles: 'Seleccioneu des dels arxius', + url: 'URL de la imatge' + }, + link: { + link: 'Enllaç', + insert: 'Inserir enllaç', + unlink: 'Treure enllaç', + edit: 'Editar', + textToDisplay: 'Text per mostrar', + url: 'Cap a quina URL porta l\'enllaç?', + openInNewWindow: 'Obrir en una finestra nova' + }, + table: { + table: 'Taula' + }, + hr: { + insert: 'Inserir línia horitzontal' + }, + style: { + style: 'Estil', + normal: 'Normal', + blockquote: 'Cita', + pre: 'Codi', + h1: 'Títol 1', + h2: 'Títol 2', + h3: 'Títol 3', + h4: 'Títol 4', + h5: 'Títol 5', + h6: 'Títol 6' + }, + lists: { + unordered: 'Llista desendreçada', + ordered: 'Llista endreçada' + }, + options: { + help: 'Ajut', + fullscreen: 'Pantalla sencera', + codeview: 'Veure codi font' + }, + paragraph: { + paragraph: 'Paràgraf', + outdent: 'Menys tabulació', + indent: 'Més tabulació', + left: 'Alinear a l\'esquerra', + center: 'Alinear al mig', + right: 'Alinear a la dreta', + justify: 'Justificar' + }, + color: { + recent: 'Últim color', + more: 'Més colors', + background: 'Color de fons', + foreground: 'Color de lletra', + transparent: 'Transparent', + setTransparent: 'Establir transparent', + reset: 'Restablir', + resetToDefault: 'Restablir per defecte' + }, + shortcut: { + shortcuts: 'Dreceres de teclat', + close: 'Tancar', + textFormatting: 'Format de text', + action: 'Acció', + paragraphFormatting: 'Format de paràgraf', + documentStyle: 'Estil del document' + }, + history: { + undo: 'Desfer', + redo: 'Refer' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-cs-CZ.js b/vendor/assets/components/summernote/lang/summernote-cs-CZ.js new file mode 100644 index 000000000..d4c654f89 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-cs-CZ.js @@ -0,0 +1,96 @@ +(function ($) { + $.extend($.summernote.lang, { + 'cs-CZ': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podtržené', + clear: 'Odstranit styl písma', + height: 'Výška řádku', + strikethrough: 'Přeškrtnuté', + size: 'Velikost písma' + }, + image: { + image: 'Obrázek', + insert: 'Vložit obrázek', + resizeFull: 'Původní velikost', + resizeHalf: 'Poloviční velikost', + resizeQuarter: 'Čtvrteční velikost', + floatLeft: 'Umístit doleva', + floatRight: 'Umístit doprava', + floatNone: 'Neobtékat textem', + dragImageHere: 'Přetáhnout sem obrázek', + selectFromFiles: 'Vybrat soubor', + url: 'URL obrázku' + }, + link: { + link: 'Odkaz', + insert: 'Vytvořit odkaz', + unlink: 'Zrušit odkaz', + edit: 'Upravit', + textToDisplay: 'Zobrazovaný text', + url: 'Na jaké URL má tento odkaz vést?', + openInNewWindow: 'Otevřít v novém okně' + }, + table: { + table: 'Tabulka' + }, + hr: { + insert: 'Vložit vodorovnou čáru' + }, + style: { + style: 'Styl', + normal: 'Normální', + blockquote: 'Citace', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový seznam', + ordered: 'Číselný seznam' + }, + options: { + help: 'Nápověda', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odstavec', + outdent: 'Zvětšit odsazení', + indent: 'Zmenšit odsazení', + left: 'Zarovnat doleva', + center: 'Zarovnat na střed', + right: 'Zarovnat doprava', + justify: 'Zarovnat oboustranně' + }, + color: { + recent: 'Aktuální barva', + more: 'Další barvy', + background: 'Barva pozadí', + foreground: 'Barva písma', + transparent: 'Průhlednost', + setTransparent: 'Nastavit průhlednost', + reset: 'Obnovit', + resetToDefault: 'Obnovit výchozí' + }, + shortcut: { + shortcuts: 'Klávesové zkratky', + close: 'Zavřít', + textFormatting: 'Formátování textu', + action: 'Akce', + paragraphFormatting: 'Formátování odstavce', + documentStyle: 'Styl dokumentu' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok vpřed' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-da-DK.js b/vendor/assets/components/summernote/lang/summernote-da-DK.js new file mode 100644 index 000000000..14be381fa --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-da-DK.js @@ -0,0 +1,107 @@ +(function ($) { + $.extend($.summernote.lang, { + 'da-DK': { + font: { + bold: 'Fed', + italic: 'Kursiv', + underline: 'Understreget', + clear: 'Fjern formatering', + height: 'Højde', + name: 'Skrifttype', + strikethrough: 'Gennemstreget', + subscript: 'Sænket skrift', + superscript: 'Hævet skrift', + size: 'Skriftstørrelse' + }, + image: { + image: 'Billede', + insert: 'Indsæt billede', + resizeFull: 'Original størrelse', + resizeHalf: 'Halv størrelse', + resizeQuarter: 'Kvart størrelse', + floatLeft: 'Venstrestillet', + floatRight: 'Højrestillet', + floatNone: 'Fjern formatering', + shapeRounded: 'Form: Runde kanter', + shapeCircle: 'Form: Cirkel', + shapeThumbnail: 'Form: Miniature', + shapeNone: 'Form: Ingen', + dragImageHere: 'Træk billede hertil', + dropImage: 'Slip billede', + selectFromFiles: 'Vælg billed-fil', + maximumFileSize: 'Maks fil størrelse', + maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!', + url: 'Billede URL', + remove: 'Fjern billede' + }, + link: { + link: 'Link', + insert: 'Indsæt link', + unlink: 'Fjern link', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Hvor skal linket pege hen?', + openInNewWindow: 'Åbn i nyt vindue' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Indsæt horisontal linje' + }, + style: { + style: 'Stil', + normal: 'Normal', + blockquote: 'Citat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktopstillet liste', + ordered: 'Nummereret liste' + }, + options: { + help: 'Hjælp', + fullscreen: 'Fuld skærm', + codeview: 'HTML-Visning' + }, + paragraph: { + paragraph: 'Afsnit', + outdent: 'Formindsk indryk', + indent: 'Forøg indryk', + left: 'Venstrestillet', + center: 'Centreret', + right: 'Højrestillet', + justify: 'Blokjuster' + }, + color: { + recent: 'Nyligt valgt farve', + more: 'Flere farver', + background: 'Baggrund', + foreground: 'Forgrund', + transparent: 'Transparent', + setTransparent: 'Sæt transparent', + reset: 'Nulstil', + resetToDefault: 'Gendan standardindstillinger' + }, + shortcut: { + shortcuts: 'Genveje', + close: 'Luk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Afsnitsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Fortryd', + redo: 'Annuller fortryd' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-de-DE.js b/vendor/assets/components/summernote/lang/summernote-de-DE.js new file mode 100644 index 000000000..8e18c0811 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-de-DE.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'de-DE': { + font: { + bold: 'Fett', + italic: 'Kursiv', + underline: 'Unterstreichen', + clear: 'Zurücksetzen', + height: 'Zeilenhöhe', + strikethrough: 'Durchgestrichen', + size: 'Schriftgröße' + }, + image: { + image: 'Grafik', + insert: 'Grafik einfügen', + resizeFull: 'Originalgröße', + resizeHalf: 'Größe 1/2', + resizeQuarter: 'Größe 1/4', + floatLeft: 'Linksbündig', + floatRight: 'Rechtsbündig', + floatNone: 'Kein Textfluss', + dragImageHere: 'Ziehen Sie ein Bild mit der Maus hierher', + selectFromFiles: 'Wählen Sie eine Datei aus', + url: 'Grafik URL', + remove: 'Grafik entfernen' + }, + link: { + link: 'Link', + insert: 'Link einfügen', + unlink: 'Link entfernen', + edit: 'Editieren', + textToDisplay: 'Anzeigetext', + url: 'Ziel des Links?', + openInNewWindow: 'In einem neuen Fenster öffnen' + }, + table: { + table: 'Tabelle' + }, + hr: { + insert: 'Eine horizontale Linie einfügen' + }, + style: { + style: 'Stil', + normal: 'Normal', + blockquote: 'Zitat', + pre: 'Quellcode', + h1: 'Überschrift 1', + h2: 'Überschrift 2', + h3: 'Überschrift 3', + h4: 'Überschrift 4', + h5: 'Überschrift 5', + h6: 'Überschrift 6' + }, + lists: { + unordered: 'Aufzählung', + ordered: 'Nummerierung' + }, + options: { + help: 'Hilfe', + fullscreen: 'Vollbild', + codeview: 'HTML-Code anzeigen' + }, + paragraph: { + paragraph: 'Absatz', + outdent: 'Einzug vergrößern', + indent: 'Einzug verkleinern', + left: 'Links ausrichten', + center: 'Zentriert ausrichten', + right: 'Rechts ausrichten', + justify: 'Blocksatz' + }, + color: { + recent: 'Letzte Farbe', + more: 'Mehr Farben', + background: 'Hintergrundfarbe', + foreground: 'Schriftfarbe', + transparent: 'Transparenz', + setTransparent: 'Transparenz setzen', + reset: 'Zurücksetzen', + resetToDefault: 'Auf Standard zurücksetzen' + }, + shortcut: { + shortcuts: 'Tastenkürzel', + close: 'Schließen', + textFormatting: 'Textformatierung', + action: 'Aktion', + paragraphFormatting: 'Absatzformatierung', + documentStyle: 'Dokumentenstil' + }, + history: { + undo: 'Rückgängig', + redo: 'Wiederholen' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-es-ES.js b/vendor/assets/components/summernote/lang/summernote-es-ES.js new file mode 100644 index 000000000..e065e2437 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-es-ES.js @@ -0,0 +1,98 @@ +(function ($) { + $.extend($.summernote.lang, { + 'es-ES': { + font: { + bold: 'Negrita', + italic: 'Cursiva', + underline: 'Subrayado', + clear: 'Quitar estilo de fuente', + height: 'Altura de línea', + name: 'Fuente', + strikethrough: 'Tachado', + superscript: 'Superíndice', + subscript: 'Subíndice', + size: 'Tamaño de la fuente' + }, + image: { + image: 'Imagen', + insert: 'Insertar imagen', + resizeFull: 'Redimensionar a tamaño completo', + resizeHalf: 'Redimensionar a la mitad', + resizeQuarter: 'Redimensionar a un cuarto', + floatLeft: 'Flotar a la izquierda', + floatRight: 'Flotar a la derecha', + floatNone: 'No flotar', + dragImageHere: 'Arrastrar una imagen aquí', + selectFromFiles: 'Seleccionar desde los archivos', + url: 'URL de la imagen' + }, + link: { + link: 'Link', + insert: 'Insertar link', + unlink: 'Quitar link', + edit: 'Editar', + textToDisplay: 'Texto para mostrar', + url: '¿Hacia que URL lleva el link?', + openInNewWindow: 'Abrir en una nueva ventana' + }, + table: { + table: 'Tabla' + }, + hr: { + insert: 'Insertar línea horizontal' + }, + style: { + style: 'Estilo', + normal: 'Normal', + blockquote: 'Cita', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista desordenada', + ordered: 'Lista ordenada' + }, + options: { + help: 'Ayuda', + fullscreen: 'Pantalla completa', + codeview: 'Ver código fuente' + }, + paragraph: { + paragraph: 'Párrafo', + outdent: 'Menos tabulación', + indent: 'Más tabulación', + left: 'Alinear a la izquierda', + center: 'Alinear al centro', + right: 'Alinear a la derecha', + justify: 'Justificar' + }, + color: { + recent: 'Último color', + more: 'Más colores', + background: 'Color de fondo', + foreground: 'Color de fuente', + transparent: 'Transparente', + setTransparent: 'Establecer transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar por defecto' + }, + shortcut: { + shortcuts: 'Atajos de teclado', + close: 'Cerrar', + textFormatting: 'Formato de texto', + action: 'Acción', + paragraphFormatting: 'Formato de párrafo', + documentStyle: 'Estilo de documento' + }, + history: { + undo: 'Deshacer', + redo: 'Rehacer' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-es-EU.js b/vendor/assets/components/summernote/lang/summernote-es-EU.js new file mode 100644 index 000000000..ccdd9f519 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-es-EU.js @@ -0,0 +1,96 @@ +(function ($) { + $.extend($.summernote.lang, { + 'es-EU': { + font: { + bold: 'Lodia', + italic: 'Etzana', + underline: 'Azpimarratua', + clear: 'Estiloa kendu', + height: 'Lerro altuera', + name: 'Tipografia', + strikethrough: 'Marratua', + size: 'Letren neurria' + }, + image: { + image: 'Irudia', + insert: 'Irudi bat txertatu', + resizeFull: 'Jatorrizko neurrira aldatu', + resizeHalf: 'Neurria erdira aldatu', + resizeQuarter: 'Neurria laurdenera aldatu', + floatLeft: 'Ezkerrean kokatu', + floatRight: 'Eskuinean kokatu', + floatNone: 'Kokapenik ez ezarri', + dragImageHere: 'Irudi bat ezarri hemen', + selectFromFiles: 'Zure fitxategi bat aukeratu', + url: 'Irudiaren URL helbidea' + }, + link: { + link: 'Esteka', + insert: 'Esteka bat txertatu', + unlink: 'Esteka ezabatu', + edit: 'Editatu', + textToDisplay: 'Estekaren testua', + url: 'Estekaren URL helbidea', + openInNewWindow: 'Leiho berri batean ireki' + }, + table: { + table: 'Taula' //Tabla + }, + hr: { + insert: 'Marra horizontala txertatu' //Insertar línea horizontal + }, + style: { + style: 'Estiloa', + normal: 'Normal', + blockquote: 'Aipamena', + pre: 'Kodea', + h1: '1. izenburua', + h2: '2. izenburua', + h3: '3. izenburua', + h4: '4. izenburua', + h5: '5. izenburua', + h6: '6. izenburua' + }, + lists: { + unordered: 'Ordenatu gabeko zerrenda', + ordered: 'Zerrenda ordenatua' + }, + options: { + help: 'Laguntza', + fullscreen: 'Pantaila osoa', + codeview: 'Kodea ikusi' + }, + paragraph: { + paragraph: 'Paragrafoa', + outdent: 'Koska txikiagoa', + indent: 'Koska handiagoa', + left: 'Ezkerrean kokatu', + center: 'Erdian kokatu', + right: 'Eskuinean kokatu', + justify: 'Justifikatu' + }, + color: { + recent: 'Azken kolorea', + more: 'Kolore gehiago', + background: 'Atzeko planoa', + foreground: 'Aurreko planoa', + transparent: 'Gardena', + setTransparent: 'Gardendu', + reset: 'Lehengoratu', + resetToDefault: 'Berrezarri lehenetsia' + }, + shortcut: { + shortcuts: 'Lasterbideak', + close: 'Itxi', + textFormatting: 'Testuaren formatua', + action: 'Ekintza', + paragraphFormatting: 'Paragrafoaren formatua', + documentStyle: 'Dokumentuaren estiloa' + }, + history: { + undo: 'Desegin', + redo: 'Berregin' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-fa-IR.js b/vendor/assets/components/summernote/lang/summernote-fa-IR.js new file mode 100644 index 000000000..07bda1394 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-fa-IR.js @@ -0,0 +1,98 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fa-IR': { + font: { + bold: 'درشت', + italic: 'خمیده', + underline: 'میان خط', + clear: 'پاک کردن فرمت فونت', + height: 'فاصله ی خطی', + name: 'اسم فونت', + strikethrough: 'Strike', + size: 'اندازه ی فونت' + }, + image: { + image: 'تصویر', + insert: 'وارد کردن تصویر', + resizeFull: 'تغییر به اندازه ی کامل', + resizeHalf: 'تغییر به اندازه نصف', + resizeQuarter: 'تغییر به اندازه یک چهارم', + floatLeft: 'چسباندن به چپ', + floatRight: 'چسباندن به راست', + floatNone: 'بدون چسبندگی', + dragImageHere: 'یک تصویر را اینجا بکشید', + selectFromFiles: 'فایل ها را انتخاب کنید', + url: 'آدرس تصویر', + remove: 'حذف تصویر' + }, + link: { + link: 'لینک', + insert: 'اضافه کردن لینک', + unlink: 'حذف لینک', + edit: 'ویرایش', + textToDisplay: 'متن جهت نمایش', + url: 'این لینک به چه آدرسی باید برود ؟', + openInNewWindow: 'در یک پنجره ی جدید باز شود' + }, + table: { + table: 'جدول' + }, + hr: { + insert: 'افزودن خط افقی' + }, + style: { + style: 'استیل', + normal: 'نرمال', + blockquote: 'نقل قول', + pre: 'کد', + h1: 'سرتیتر 1', + h2: 'سرتیتر 2', + h3: 'سرتیتر 3', + h4: 'سرتیتر 4', + h5: 'سرتیتر 5', + h6: 'سرتیتر 6' + }, + lists: { + unordered: 'لیست غیر ترتیبی', + ordered: 'لیست ترتیبی' + }, + options: { + help: 'راهنما', + fullscreen: 'نمایش تمام صفحه', + codeview: 'مشاهده ی کد' + }, + paragraph: { + paragraph: 'پاراگراف', + outdent: 'کاهش تو رفتگی', + indent: 'افزایش تو رفتگی', + left: 'چپ چین', + center: 'میان چین', + right: 'راست چین', + justify: 'بلوک چین' + }, + color: { + recent: 'رنگ اخیرا استفاده شده', + more: 'رنگ بیشتر', + background: 'رنگ پس زمینه', + foreground: 'رنگ متن', + transparent: 'بی رنگ', + setTransparent: 'تنظیم حالت بی رنگ', + reset: 'بازنشاندن', + resetToDefault: 'حالت پیش فرض' + }, + shortcut: { + shortcuts: 'دکمه های میان بر', + close: 'بستن', + textFormatting: 'فرمت متن', + action: 'عملیات', + paragraphFormatting: 'فرمت پاراگراف', + documentStyle: 'استیل سند' + }, + history: { + undo: 'واچیدن', + redo: 'بازچیدن' + } + } + }); +})(jQuery); + diff --git a/vendor/assets/components/summernote/lang/summernote-fi-FI.js b/vendor/assets/components/summernote/lang/summernote-fi-FI.js new file mode 100644 index 000000000..c51c0435a --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-fi-FI.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fi-FI': { + font: { + bold: 'Lihavoitu', + italic: 'Kursiivi', + underline: 'Alleviivaa', + clear: 'Tyhjennä muotoilu', + height: 'Riviväli', + name: 'Kirjasintyyppi', + strikethrough: 'Yliviivaus', + size: 'Kirjasinkoko' + }, + image: { + image: 'Kuva', + insert: 'Lisää kuva', + resizeFull: 'Koko leveys', + resizeHalf: 'Puolikas leveys', + resizeQuarter: 'Neljäsosa leveys', + floatLeft: 'Sijoita vasemmalle', + floatRight: 'Sijoita oikealle', + floatNone: 'Ei sijoitusta', + dragImageHere: 'Vedä kuva tähän', + selectFromFiles: 'Valitse tiedostoista', + url: 'URL-osoitteen mukaan', + remove: 'Poista kuva' + }, + link: { + link: 'Linkki', + insert: 'Lisää linkki', + unlink: 'Poista linkki', + edit: 'Muokkaa', + textToDisplay: 'Näytettävä teksti', + url: 'Linkin URL-osoite?', + openInNewWindow: 'Avaa uudessa ikkunassa' + }, + table: { + table: 'Taulukko' + }, + hr: { + insert: 'Lisää vaakaviiva' + }, + style: { + style: 'Tyyli', + normal: 'Normaali', + blockquote: 'Lainaus', + pre: 'Koodi', + h1: 'Otsikko 1', + h2: 'Otsikko 2', + h3: 'Otsikko 3', + h4: 'Otsikko 4', + h5: 'Otsikko 5', + h6: 'Otsikko 6' + }, + lists: { + unordered: 'Luettelomerkitty luettelo', + ordered: 'Numeroitu luettelo' + }, + options: { + help: 'Ohje', + fullscreen: 'Koko näyttö', + codeview: 'HTML-näkymä' + }, + paragraph: { + paragraph: 'Kappale', + outdent: 'Pienennä sisennystä', + indent: 'Suurenna sisennystä', + left: 'Tasaus vasemmalle', + center: 'Keskitä', + right: 'Tasaus oikealle', + justify: 'Tasaa' + }, + color: { + recent: 'Viimeisin väri', + more: 'Lisää värejä', + background: 'Taustaväri', + foreground: 'Tekstin väri', + transparent: 'Läpinäkyvä', + setTransparent: 'Aseta läpinäkyväksi', + reset: 'Palauta', + resetToDefault: 'Palauta oletusarvoksi' + }, + shortcut: { + shortcuts: 'Pikanäppäimet', + close: 'Sulje', + textFormatting: 'Tekstin muotoilu', + action: 'Toiminto', + paragraphFormatting: 'Kappaleen muotoilu', + documentStyle: 'Asiakirjan tyyli' + }, + history: { + undo: 'Kumoa', + redo: 'Toista' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-fr-FR.js b/vendor/assets/components/summernote/lang/summernote-fr-FR.js new file mode 100644 index 000000000..8c3ce1136 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-fr-FR.js @@ -0,0 +1,100 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fr-FR': { + font: { + bold: 'Gras', + italic: 'Italique', + underline: 'Souligné', + clear: 'Effacer la mise en forme', + height: 'Interligne', + name: 'Famille de police', + strikethrough: 'Barré', + superscript: 'Exposant', + subscript: 'Indicé', + size: 'Taille de police' + }, + image: { + image: 'Image', + insert: 'Insérer une image', + resizeFull: 'Taille originale', + resizeHalf: 'Redimensionner à 50 %', + resizeQuarter: 'Redimensionner à 25 %', + floatLeft: 'Aligné à gauche', + floatRight: 'Aligné à droite', + floatNone: 'Pas d\'alignement', + dragImageHere: 'Faites glisser une image avec la souris dans ce cadre', + selectFromFiles: 'Choisir un fichier', + url: 'URL de l\'image', + remove: 'Supprimer l\'image' + }, + link: { + link: 'Lien', + insert: 'Insérer un lien', + unlink: 'Supprimer un lien', + edit: 'Modifier', + textToDisplay: 'Texte à afficher', + url: 'URL du lien', + openInNewWindow: 'Ouvrir dans une nouvelle fenêtre' + }, + table: { + table: 'Tableau' + }, + hr: { + insert: 'Insérer une ligne horizontale de séparation' + }, + style: { + style: 'Style', + normal: 'Normal', + blockquote: 'Citation', + pre: 'Code source', + h1: 'Titre 1', + h2: 'Titre 2', + h3: 'Titre 3', + h4: 'Titre 4', + h5: 'Titre 5', + h6: 'Titre 6' + }, + lists: { + unordered: 'Liste à puces', + ordered: 'Liste numérotée' + }, + options: { + help: 'Aide', + fullscreen: 'Plein écran', + codeview: 'Afficher le code HTML' + }, + paragraph: { + paragraph: 'Paragraphe', + outdent: 'Diminuer le retrait', + indent: 'Augmenter le retrait', + left: 'Aligner à gauche', + center: 'Centrer', + right: 'Aligner à droite', + justify: 'Justifier' + }, + color: { + recent: 'Dernière couleur sélectionnée', + more: 'Plus de couleurs', + background: 'Couleur de fond', + foreground: 'Couleur de police', + transparent: 'Transparent', + setTransparent: 'Définir la transparence', + reset: 'Restaurer', + resetToDefault: 'Restaurer la couleur par défaut' + }, + shortcut: { + shortcuts: 'Raccourcis', + close: 'Fermer', + textFormatting: 'Mise en forme du texte', + action: 'Action', + paragraphFormatting: 'Mise en forme des paragraphes', + documentStyle: 'Style du document' + }, + history: { + undo: 'Annuler la dernière action', + redo: 'Restaurer la dernière action annulée' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-he-IL.js b/vendor/assets/components/summernote/lang/summernote-he-IL.js new file mode 100644 index 000000000..316809cbd --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-he-IL.js @@ -0,0 +1,100 @@ +(function ($) { + $.extend($.summernote.lang, { + 'he-IL': { + font: { + bold: 'מודגש', + italic: 'נטוי', + underline: 'קו תחתון', + clear: 'נקה עיצוב', + height: 'גובה', + name: 'גופן', + strikethrough: 'קו חוצה', + subscript: 'כתב תחתי', + superscript: 'כתב עילי', + size: 'גודל גופן' + }, + image: { + image: 'תמונה', + insert: 'הוסף תמונה', + resizeFull: 'גודל מלא', + resizeHalf: 'להקטין לחצי', + resizeQuarter: 'להקטין לרבע', + floatLeft: 'יישור לשמאל', + floatRight: 'יישור לימין', + floatNone: 'ישר', + dragImageHere: 'גרור תמונה לכאן', + selectFromFiles: 'בחר מתוך קבצים', + url: 'נתיב לתמונה', + remove: 'הסר תמונה' + }, + link: { + link: 'קישור', + insert: 'הוסף קישור', + unlink: 'הסר קישור', + edit: 'ערוך', + textToDisplay: 'טקסט להציג', + url: 'קישור', + openInNewWindow: 'פתח בחלון חדש' + }, + table: { + table: 'טבלה' + }, + hr: { + insert: 'הוסף קו' + }, + style: { + style: 'עיצוב', + normal: 'טקסט רגיל', + blockquote: 'ציטוט', + pre: 'קוד', + h1: 'כותרת 1', + h2: 'כותרת 2', + h3: 'כותרת 3', + h4: 'כותרת 4', + h5: 'כותרת 5', + h6: 'כותרת 6' + }, + lists: { + unordered: 'רשימת תבליטים', + ordered: 'רשימה ממוספרת' + }, + options: { + help: 'עזרה', + fullscreen: 'מסך מלא', + codeview: 'תצוגת קוד' + }, + paragraph: { + paragraph: 'פסקה', + outdent: 'הקטן כניסה', + indent: 'הגדל כניסה', + left: 'יישור לשמאל', + center: 'יישור למרכז', + right: 'יישור לימין', + justify: 'מיושר' + }, + color: { + recent: 'צבע טקסט אחרון', + more: 'עוד צבעים', + background: 'צבע רקע', + foreground: 'צבע טקסט', + transparent: 'שקוף', + setTransparent: 'קבע כשקוף', + reset: 'איפוס', + resetToDefault: 'אפס לברירת מחדל' + }, + shortcut: { + shortcuts: 'קיצורי מקלדת', + close: 'סגור', + textFormatting: 'עיצוב הטקסט', + action: 'פעולה', + paragraphFormatting: 'סגנונות פסקה', + documentStyle: 'עיצוב המסמך', + extraKeys: 'קיצורים נוספים' + }, + history: { + undo: 'בטל פעולה', + redo: 'בצע שוב' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-hu-HU.js b/vendor/assets/components/summernote/lang/summernote-hu-HU.js new file mode 100644 index 000000000..9a205d47f --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-hu-HU.js @@ -0,0 +1,98 @@ +(function ($) { + $.extend($.summernote.lang, { + 'hu-HU': { + font: { + bold: 'Félkövér', + italic: 'Dőlt', + underline: 'Aláhúzott', + clear: 'Formázás törlése', + height: 'Sorköz', + name: 'Betűtípus', + strikethrough: 'Áthúzott', + size: 'Betűméret' + }, + image: { + image: 'Kép', + insert: 'Kép beszúrása', + resizeFull: 'Átméretezés teljes méretre', + resizeHalf: 'Átméretezés felére', + resizeQuarter: 'Átméretezés negyedére', + floatLeft: 'Igazítás balra', + floatRight: 'Igazítás jobbra', + floatNone: 'Igazítás törlése', + dragImageHere: 'Ide húzhatod a képet', + selectFromFiles: 'Fájlok kiválasztása', + url: 'Kép URL címe', + remove: 'Kép törlése' + }, + link: { + link: 'Hivatkozás', + insert: 'Hivatkozás beszúrása', + unlink: 'Hivatkozás megszüntetése', + edit: 'Szerkesztés', + textToDisplay: 'Megjelenítendő szöveg', + url: 'Milyen URL címre hivatkozzon?', + openInNewWindow: 'Megnyitás új ablakban' + }, + table: { + table: 'Táblázat' + }, + hr: { + insert: 'Elválasztó vonal beszúrása' + }, + style: { + style: 'Stílus', + normal: 'Normál', + blockquote: 'Idézet', + pre: 'Kód', + h1: 'Fejléc 1', + h2: 'Fejléc 2', + h3: 'Fejléc 3', + h4: 'Fejléc 4', + h5: 'Fejléc 5', + h6: 'Fejléc 6' + }, + lists: { + unordered: 'Listajeles lista', + ordered: 'Számozott lista' + }, + options: { + help: 'Súgó', + fullscreen: 'Teljes képernyő', + codeview: 'Kód nézet' + }, + paragraph: { + paragraph: 'Bekezdés', + outdent: 'Behúzás csökkentése', + indent: 'Behúzás növelése', + left: 'Igazítás balra', + center: 'Igazítás középre', + right: 'Igazítás jobbra', + justify: 'Sorkizárt' + }, + color: { + recent: 'Jelenlegi szín', + more: 'További színek', + background: 'Háttérszín', + foreground: 'Betűszín', + transparent: 'Átlátszó', + setTransparent: 'Átlászóság beállítása', + reset: 'Visszaállítás', + resetToDefault: 'Alaphelyzetbe állítás' + }, + shortcut: { + shortcuts: 'Gyorsbillentyű', + close: 'Bezárás', + textFormatting: 'Szöveg formázása', + action: 'Művelet', + paragraphFormatting: 'Bekezdés formázása', + documentStyle: 'Dokumentumstílus' + }, + history: { + undo: 'Visszavonás', + redo: 'Újra' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-id-ID.js b/vendor/assets/components/summernote/lang/summernote-id-ID.js new file mode 100644 index 000000000..5c36c34db --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-id-ID.js @@ -0,0 +1,96 @@ +(function ($) { + $.extend($.summernote.lang, { + 'id-ID': { + font: { + bold: 'Tebal', + italic: 'Miring', + underline: 'Garis bawah', + clear: 'Bersihkan gaya', + height: 'Jarak baris', + strikethrough: 'Coret', + size: 'Ukuran font' + }, + image: { + image: 'Gambar', + insert: 'Sisipkan gambar', + resizeFull: 'Ukuran penuh', + resizeHalf: 'Ukuran 50%', + resizeQuarter: 'Ukuran 25%', + floatLeft: 'Rata kiri', + floatRight: 'Rata kanan', + floatNone: 'Tidak ada perataan', + dragImageHere: 'Tarik gambar pada area ini', + selectFromFiles: 'Pilih gambar dari berkas', + url: 'URL gambar', + remove: 'Hapus Gambar' + }, + link: { + link: 'Tautan', + insert: 'Tambah tautan', + unlink: 'Hapus tautan', + edit: 'Edit', + textToDisplay: 'Tampilan teks', + url: 'Tautan tujuan', + openInNewWindow: 'Buka di jendela baru' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Masukkan garis horizontal' + }, + style: { + style: 'Gaya', + normal: 'Normal', + blockquote: 'Kutipan', + pre: 'Kode', + h1: 'Heading 1', + h2: 'Heading 2', + h3: 'Heading 3', + h4: 'Heading 4', + h5: 'Heading 5', + h6: 'Heading 6' + }, + lists: { + unordered: 'Pencacahan', + ordered: 'Penomoran' + }, + options: { + help: 'Bantuan', + fullscreen: 'Layar penuh', + codeview: 'Kode HTML' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Outdent', + indent: 'Indent', + left: 'Rata kiri', + center: 'Rata tengah', + right: 'Rata kanan', + justify: 'Rata kanan kiri' + }, + color: { + recent: 'Warna sekarang', + more: 'Selengkapnya', + background: 'Warna latar', + foreground: 'Warna font', + transparent: 'Transparan', + setTransparent: 'Atur transparansi', + reset: 'Atur ulang', + resetToDefault: 'Kembalikan kesemula' + }, + shortcut: { + shortcuts: 'Jalan pintas', + close: 'Keluar', + textFormatting: 'Format teks', + action: 'Aksi', + paragraphFormatting: 'Format paragraf', + documentStyle: 'Gaya dokumen' + }, + history: { + undo: 'Kembali', + redo: 'Ulang' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-it-IT.js b/vendor/assets/components/summernote/lang/summernote-it-IT.js new file mode 100644 index 000000000..3eb3e4ab5 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-it-IT.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'it-IT': { + font: { + bold: 'Testo in grassetto', + italic: 'Testo in corsivo', + underline: 'Testo sottolineato', + clear: 'Elimina la formattazione del testo', + height: 'Altezza della linea di testo', + name: 'Famiglia Font', + strikethrough: 'Testo barrato', + size: 'Dimensione del carattere' + }, + image: { + image: 'Immagine', + insert: 'Inserisci Immagine', + resizeFull: 'Dimensioni originali', + resizeHalf: 'Ridimensiona al 50%', + resizeQuarter: 'Ridimensiona al 25%', + floatLeft: 'Posiziona a sinistra', + floatRight: 'Posiziona a destra', + floatNone: 'Nessun posizionamento', + dragImageHere: 'Trascina qui un\'immagine', + selectFromFiles: 'Scegli dai Documenti', + url: 'URL dell\'immagine', + remove: 'Rimuovi immagine' + }, + link: { + link: 'Collegamento', + insert: 'Inserisci Collegamento', + unlink: 'Elimina collegamento', + edit: 'Modifica collegamento', + textToDisplay: 'Testo del collegamento', + url: 'URL del collegamento', + openInNewWindow: 'Apri in una nuova finestra' + }, + table: { + table: 'Tabella' + }, + hr: { + insert: 'Inserisce una linea di separazione' + }, + style: { + style: 'Stili', + normal: 'Normale', + blockquote: 'Citazione', + pre: 'Codice', + h1: 'Titolo 1', + h2: 'Titolo 2', + h3: 'Titolo 3', + h4: 'Titolo 4', + h5: 'Titolo 5', + h6: 'Titolo 6' + }, + lists: { + unordered: 'Elenco non ordinato', + ordered: 'Elenco ordinato' + }, + options: { + help: 'Aiuto', + fullscreen: 'Modalità a tutto schermo', + codeview: 'Visualizza codice' + }, + paragraph: { + paragraph: 'Paragrafo', + outdent: 'Diminuisce il livello di rientro', + indent: 'Aumenta il livello di rientro', + left: 'Allinea a sinistra', + center: 'Centra', + right: 'Allinea a destra', + justify: 'Giustifica (allinea a destra e sinistra)' + }, + color: { + recent: 'Ultimo colore utilizzato', + more: 'Altri colori', + background: 'Colore di sfondo', + foreground: 'Colore', + transparent: 'Trasparente', + setTransparent: 'Trasparente', + reset: 'Reimposta', + resetToDefault: 'Reimposta i colori' + }, + shortcut: { + shortcuts: 'Scorciatoie da tastiera', + close: 'Chiudi', + textFormatting: 'Formattazione testo', + action: 'Azioni', + paragraphFormatting: 'Formattazione paragrafo', + documentStyle: 'Stili' + }, + history: { + undo: 'Annulla', + redo: 'Ripristina' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-ja-JP.js b/vendor/assets/components/summernote/lang/summernote-ja-JP.js new file mode 100644 index 000000000..2b4dbb70b --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ja-JP.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ja-JP': { + font: { + bold: '太字', + italic: '斜体', + underline: '下線', + clear: 'クリア', + height: '文字高', + name: 'フォント', + strikethrough: '取り消し線', + size: '大きさ' + }, + image: { + image: '画像', + insert: '画像挿入', + resizeFull: '最大化', + resizeHalf: '1/2', + resizeQuarter: '1/4', + floatLeft: '左寄せ', + floatRight: '右寄せ', + floatNone: '寄せ解除', + dragImageHere: 'ここに画像をドラッグしてください', + selectFromFiles: '画像ファイルを選ぶ', + url: 'URLから画像を挿入する', + remove: '画像を削除する' + }, + link: { + link: 'リンク', + insert: 'リンク挿入', + unlink: 'リンク解除', + edit: '編集', + textToDisplay: 'リンク文字列', + url: 'URLを入力してください', + openInNewWindow: '新しいウィンドウで開く' + }, + table: { + table: 'テーブル' + }, + hr: { + insert: '水平線の挿入' + }, + style: { + style: 'スタイル', + normal: '標準', + blockquote: '引用', + pre: 'コード', + h1: '見出し1', + h2: '見出し2', + h3: '見出し3', + h4: '見出し4', + h5: '見出し5', + h6: '見出し6' + }, + lists: { + unordered: '通常リスト', + ordered: '番号リスト' + }, + options: { + help: 'ヘルプ', + fullscreen: 'フルスクリーン', + codeview: 'コード表示' + }, + paragraph: { + paragraph: '文章', + outdent: '字上げ', + indent: '字下げ', + left: '左寄せ', + center: '中央寄せ', + right: '右寄せ', + justify: '均等割付' + }, + color: { + recent: '現在の色', + more: 'もっと見る', + background: '背景色', + foreground: '文字色', + transparent: '透過率', + setTransparent: '透過率を設定', + reset: '標準', + resetToDefault: '標準に戻す' + }, + shortcut: { + shortcuts: 'ショートカット', + close: '閉じる', + textFormatting: '文字フォーマット', + action: 'アクション', + paragraphFormatting: '文章フォーマット', + documentStyle: 'ドキュメント形式' + }, + history: { + undo: '元に戻す', + redo: 'やり直す' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-ko-KR.js b/vendor/assets/components/summernote/lang/summernote-ko-KR.js new file mode 100644 index 000000000..15f7fbc7f --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ko-KR.js @@ -0,0 +1,104 @@ +(function ($) { + console.log('hit'); + $.extend($.summernote.lang, { + 'ko-KR': { + font: { + bold: '굵게', + italic: '기울임꼴', + underline: '밑줄', + clear: '글자 효과 없애기', + height: '줄간격', + name: '글꼴', + superscript: '위 첨자', + subscript: '아래 첨자', + strikethrough: '취소선', + size: '글자 크기' + }, + image: { + image: '사진', + insert: '사진 추가', + resizeFull: '원본 크기로 변경', + resizeHalf: '50% 크기로 변경', + resizeQuarter: '25% 크기로 변경', + floatLeft: '왼쪽 정렬', + floatRight: '오른쪽 정렬', + floatNone: '정렬하지 않음', + shapeRounded: '스타일: 둥근 모서리', + shapeCircle: '스타일: 원형', + shapeThumbnail: '스타일: 액자', + shapeNone: '스타일: 없음', + dragImageHere: '사진을 이곳으로 끌어오세요', + selectFromFiles: '파일 선택', + url: '사진 URL', + remove: '사진 삭제' + }, + link: { + link: '링크', + insert: '링크 추가', + unlink: '링크 삭제', + edit: '수정', + textToDisplay: '링크에 표시할 내용', + url: '이동할 URL', + openInNewWindow: '새창으로 열기' + }, + table: { + table: '테이블' + }, + hr: { + insert: '구분선 추가' + }, + style: { + style: '스타일', + normal: '본문', + blockquote: '인용구', + pre: '코드', + h1: '제목 1', + h2: '제목 2', + h3: '제목 3', + h4: '제목 4', + h5: '제목 5', + h6: '제목 6' + }, + lists: { + unordered: '글머리 기호', + ordered: '번호 매기기' + }, + options: { + help: '도움말', + fullscreen: '전체 화면', + codeview: '코드 보기' + }, + paragraph: { + paragraph: '문단 정렬', + outdent: '내어쓰기', + indent: '들여쓰기', + left: '왼쪽 정렬', + center: '가운데 정렬', + right: '오른쪽 정렬', + justify: '양쪽 정렬' + }, + color: { + recent: '마지막으로 사용한 색', + more: '다른 색 선택', + background: '배경색', + foreground: '글자색', + transparent: '투명', + setTransparent: '투명', + reset: '취소', + resetToDefault: '기본 값으로 변경' + }, + shortcut: { + shortcuts: '키보드 단축키', + close: '닫기', + textFormatting: '글자 스타일 적용', + action: '기능', + paragraphFormatting: '문단 스타일 적용', + documentStyle: '문서 스타일 적용' + }, + history: { + undo: '실행 취소', + redo: '다시 실행' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-nb-NO.js b/vendor/assets/components/summernote/lang/summernote-nb-NO.js new file mode 100644 index 000000000..f2be0a7e7 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-nb-NO.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'nb-NO': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understrek', + clear: 'Fjern formatering', + height: 'Linjehøyde', + name: 'Skrifttype', + strikethrough: 'Gjennomstrek', + size: 'Skriftstørrelse' + }, + image: { + image: 'Bilde', + insert: 'Sett inn bilde', + resizeFull: 'Sett full størrelse', + resizeHalf: 'Sett halv størrelse', + resizeQuarter: 'Sett kvart størrelse', + floatLeft: 'Flyt til venstre', + floatRight: 'Flyt til høyre', + floatNone: 'Fjern flyt', + dragImageHere: 'Dra et bilde hit', + selectFromFiles: 'Velg fra filer', + url: 'Bilde-URL', + remove: 'Fjern bilde' + }, + link: { + link: 'Lenke', + insert: 'Sett inn lenke', + unlink: 'Fjern lenke', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Til hvilken URL skal denne lenken peke?', + openInNewWindow: 'Åpne i nytt vindu' + }, + table: { + table: 'Tabell' + }, + hr: { + insert: 'Sett inn horisontal linje' + }, + style: { + style: 'Stil', + normal: 'Normal', + blockquote: 'Sitat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktliste', + ordered: 'Nummerert liste' + }, + options: { + help: 'Hjelp', + fullscreen: 'Fullskjerm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Avsnitt', + outdent: 'Tilbakerykk', + indent: 'Innrykk', + left: 'Venstrejustert', + center: 'Midtstilt', + right: 'Høyrejustert', + justify: 'Blokkjustert' + }, + color: { + recent: 'Nylig valgt farge', + more: 'Flere farger', + background: 'Bakgrunnsfarge', + foreground: 'Skriftfarge', + transparent: 'Gjennomsiktig', + setTransparent: 'Sett gjennomsiktig', + reset: 'Nullstill', + resetToDefault: 'Nullstill til standard' + }, + shortcut: { + shortcuts: 'Hurtigtaster', + close: 'Lukk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Angre', + redo: 'Gjør om' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-nl-NL.js b/vendor/assets/components/summernote/lang/summernote-nl-NL.js new file mode 100644 index 000000000..919c419e7 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-nl-NL.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'nl-NL': { + font: { + bold: 'Vet', + italic: 'Cursief', + underline: 'Onderstrepen', + clear: 'Stijl verwijderen', + height: 'Regelhoogte', + name: 'Lettertype', + strikethrough: 'Doorhalen', + size: 'Tekstgrootte' + }, + image: { + image: 'Afbeelding', + insert: 'Afbeelding invoegen', + resizeFull: 'Volledige breedte', + resizeHalf: 'Halve breedte', + resizeQuarter: 'Kwart breedte', + floatLeft: 'Links uitlijnen', + floatRight: 'Rechts uitlijnen', + floatNone: 'Geen uitlijning', + dragImageHere: 'Sleep hier een afbeelding naar toe', + selectFromFiles: 'Selecteer een bestand', + url: 'URL van de afbeelding', + remove: 'Verwijder afbeelding' + }, + link: { + link: 'Link', + insert: 'Link invoegen', + unlink: 'Link verwijderen', + edit: 'Wijzigen', + textToDisplay: 'Tekst van link', + url: 'Naar welke URL moet deze link verwijzen?', + openInNewWindow: 'Open in nieuw venster' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Horizontale lijn invoegen' + }, + style: { + style: 'Stijl', + normal: 'Normaal', + blockquote: 'Quote', + pre: 'Code', + h1: 'Kop 1', + h2: 'Kop 2', + h3: 'Kop 3', + h4: 'Kop 4', + h5: 'Kop 5', + h6: 'Kop 6' + }, + lists: { + unordered: 'Ongeordende lijst', + ordered: 'Geordende lijst' + }, + options: { + help: 'Help', + fullscreen: 'Volledig scherm', + codeview: 'Bekijk Code' + }, + paragraph: { + paragraph: 'Paragraaf', + outdent: 'Inspringen verkleinen', + indent: 'Inspringen vergroten', + left: 'Links uitlijnen', + center: 'Centreren', + right: 'Rechts uitlijnen', + justify: 'Uitvullen' + }, + color: { + recent: 'Recente kleur', + more: 'Meer kleuren', + background: 'Achtergrond kleur', + foreground: 'Tekst kleur', + transparent: 'Transparant', + setTransparent: 'Transparant', + reset: 'Standaard', + resetToDefault: 'Standaard kleur' + }, + shortcut: { + shortcuts: 'Toetsencombinaties', + close: 'sluiten', + textFormatting: 'Tekststijlen', + action: 'Acties', + paragraphFormatting: 'Paragraafstijlen', + documentStyle: 'Documentstijlen' + }, + history: { + undo: 'Ongedaan maken', + redo: 'Opnieuw doorvoeren' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-pl-PL.js b/vendor/assets/components/summernote/lang/summernote-pl-PL.js new file mode 100644 index 000000000..4a4c8717c --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-pl-PL.js @@ -0,0 +1,105 @@ +(function ($) { + $.extend($.summernote.lang, { + 'pl-PL': { + font: { + bold: 'Pogrubienie', + italic: 'Pochylenie', + underline: 'Podkreślenie', + clear: 'Usuń formatowanie', + height: 'Interlinia', + name: 'Czcionka', + strikethrough: 'Przekreślenie', + size: 'Rozmiar' + }, + image: { + image: 'Grafika', + insert: 'Wstaw grafikę', + resizeFull: 'Zmień rozmiar na 100%', + resizeHalf: 'Zmień rozmiar na 50%', + resizeQuarter: 'Zmień rozmiar na 25%', + floatLeft: 'Po lewej', + floatRight: 'Po prawej', + floatNone: 'Równo z tekstem', + shapeRounded: 'Kształt: zaokrąglone', + shapeCircle: 'Kształt: okrąg', + shapeThumbnail: 'Kształt: miniatura', + shapeNone: 'Kształt: brak', + dragImageHere: 'Przeciągnij grafikę lub tekst tutaj', + dropImage: 'Przeciągnij grafikę lub tekst', + selectFromFiles: 'Wybierz z dysku', + maximumFileSize: 'Limit wielkości pliku', + maximumFileSizeError: 'Przekroczono limit wielkości pliku.', + url: 'Adres URL grafiki', + remove: 'Usuń grafikę' + }, + link: { + link: 'Odnośnik', + insert: 'Wstaw odnośnik', + unlink: 'Usuń odnośnik', + edit: 'Edytuj', + textToDisplay: 'Tekst do wyświetlenia', + url: 'Na jaki adres URL powinien przenosić ten odnośnik?', + openInNewWindow: 'Otwórz w nowym oknie' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Wstaw poziomą linię' + }, + style: { + style: 'Style', + normal: 'Normalny', + blockquote: 'Cytat', + pre: 'Kod', + h1: 'Nagłówek 1', + h2: 'Nagłówek 2', + h3: 'Nagłówek 3', + h4: 'Nagłówek 4', + h5: 'Nagłówek 5', + h6: 'Nagłówek 6' + }, + lists: { + unordered: 'Lista wypunktowana', + ordered: 'Lista numerowana' + }, + options: { + help: 'Pomoc', + fullscreen: 'Pełny ekran', + codeview: 'Źródło' + }, + paragraph: { + paragraph: 'Akapit', + outdent: 'Zmniejsz wcięcie', + indent: 'Zwiększ wcięcie', + left: 'Wyrównaj do lewej', + center: 'Wyrównaj do środka', + right: 'Wyrównaj do prawej', + justify: 'Wyrównaj do lewej i prawej' + }, + color: { + recent: 'Ostani kolor', + more: 'Więcej kolorów', + background: 'Tło', + foreground: 'Czcionka', + transparent: 'Przeźroczysty', + setTransparent: 'Przeźroczyste', + reset: 'Reset', + resetToDefault: 'Domyślne' + }, + shortcut: { + shortcuts: 'Skróty klawiaturowe', + close: 'Zamknij', + textFormatting: 'Formatowanie tekstu', + action: 'Akcja', + paragraphFormatting: 'Formatowanie akapitu', + documentStyle: 'Styl dokumentu', + extraKeys: 'Dodatkowe klawisze' + }, + history: { + undo: 'Cofnij', + redo: 'Ponów' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-pt-BR.js b/vendor/assets/components/summernote/lang/summernote-pt-BR.js new file mode 100644 index 000000000..b7745e1e0 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-pt-BR.js @@ -0,0 +1,96 @@ +(function ($) { + $.extend($.summernote.lang, { + 'pt-BR': { + font: { + bold: 'Negrito', + italic: 'Itálico', + underline: 'Sublinhado', + clear: 'Remover estilo da fonte', + height: 'Altura da linha', + name: 'Fonte', + strikethrough: 'Riscado', + size: 'Tamanho da fonte' + }, + image: { + image: 'Imagem', + insert: 'Inserir imagem', + resizeFull: 'Resize Full', + resizeHalf: 'Resize Half', + resizeQuarter: 'Resize Quarter', + floatLeft: 'Float Left', + floatRight: 'Float Right', + floatNone: 'Float None', + dragImageHere: 'Arraste uma imagem para cá', + selectFromFiles: 'Selecione a partir dos arquivos', + url: 'URL da image' + }, + link: { + link: 'Link', + insert: 'Inserir link', + unlink: 'Remover link', + edit: 'Editar', + textToDisplay: 'Texto para exibir', + url: 'Para qual URL esse link leva?', + openInNewWindow: 'Abrir em uma nova janela' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Inserir linha horizontal' + }, + style: { + style: 'Estilo', + normal: 'Normal', + blockquote: 'Citação', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista com marcadores', + ordered: 'Lista numerada' + }, + options: { + help: 'Ajuda', + fullscreen: 'Tela cheia', + codeview: 'Ver código-fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menor tabulação', + indent: 'Maior tabulação', + left: 'Alinhar à esquerda', + center: 'Alinhar ao centro', + right: 'Alinha à direita', + justify: 'Justificado' + }, + color: { + recent: 'Cor recente', + more: 'Mais cores', + background: 'Fundo', + foreground: 'Fonte', + transparent: 'Transparente', + setTransparent: 'Fundo transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar padrão' + }, + shortcut: { + shortcuts: 'Atalhos do teclado', + close: 'Fechar', + textFormatting: 'Formatação de texto', + action: 'Ação', + paragraphFormatting: 'Formatação de parágrafo', + documentStyle: 'Estilo de documento' + }, + history: { + undo: 'Desfazer', + redo: 'Refazer' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-ro-RO.js b/vendor/assets/components/summernote/lang/summernote-ro-RO.js new file mode 100644 index 000000000..0c84cbc97 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ro-RO.js @@ -0,0 +1,95 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ro-RO': { + font: { + bold: 'Îngroșat', + italic: 'Înclinat', + underline: 'Subliniat', + clear: 'Înlătură formatare font', + height: 'Înălțime rând', + strikethrough: 'Tăiat', + size: 'Dimensiune font' + }, + image: { + image: 'Imagine', + insert: 'Inserează imagine', + resizeFull: 'Redimensionează complet', + resizeHalf: 'Redimensionează 1/2', + resizeQuarter: 'Redimensionează 1/4', + floatLeft: 'Aliniere la stânga', + floatRight: 'Aliniere la dreapta', + floatNone: 'Fară aliniere', + dragImageHere: 'Trage o imagine aici', + selectFromFiles: 'Alege din fişiere', + url: 'URL imagine' + }, + link: { + link: 'Link', + insert: 'Inserează link', + unlink: 'Înlătură link', + edit: 'Editează', + textToDisplay: 'Text ce va fi afişat', + url: 'Deschidere în fereastra nouă?' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Inserează o linie orizontală' + }, + style: { + style: 'Stil', + normal: 'Normal', + blockquote: 'Citat', + pre: 'Preformatat', + h1: 'Titlu 1', + h2: 'Titlu 2', + h3: 'Titlu 3', + h4: 'Titlu 4', + h5: 'Titlu 5', + h6: 'Titlu 6' + }, + lists: { + unordered: 'Listă neordonată', + ordered: 'Listă ordonată' + }, + options: { + help: 'Ajutor', + fullscreen: 'Măreşte', + codeview: 'Sursă' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Creşte identarea', + indent: 'Scade identarea', + left: 'Aliniere la stânga', + center: 'Aliniere centrală', + right: 'Aliniere la dreapta', + justify: 'Aliniere în bloc' + }, + color: { + recent: 'Culoare recentă', + more: 'Mai multe culori', + background: 'Culoarea fundalului', + foreground: 'Culoarea textului', + transparent: 'Transparent', + setTransparent: 'Setează transparent', + reset: 'Resetează', + resetToDefault: 'Revino la iniţial' + }, + shortcut: { + shortcuts: 'Scurtături tastatură', + close: 'Închide', + textFormatting: 'Formatare text', + action: 'Acţiuni', + paragraphFormatting: 'Formatare paragraf', + documentStyle: 'Stil paragraf' + }, + history: { + undo: 'Starea anterioară', + redo: 'Starea ulterioară' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-ru-RU.js b/vendor/assets/components/summernote/lang/summernote-ru-RU.js new file mode 100644 index 000000000..d6147f42a --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-ru-RU.js @@ -0,0 +1,100 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ru-RU': { + font: { + bold: 'Полужирный', + italic: 'Курсив', + underline: 'Подчёркнутый', + clear: 'Убрать стили шрифта', + height: 'Высота линии', + name: 'Шрифт', + strikethrough: 'Зачёркнутый', + subscript: 'Нижний индекс', + superscript: 'Верхний индекс', + size: 'Размер шрифта' + }, + image: { + image: 'Картинка', + insert: 'Вставить картинку', + resizeFull: 'Восстановить размер', + resizeHalf: 'Уменьшить до 50%', + resizeQuarter: 'Уменьшить до 25%', + floatLeft: 'Расположить слева', + floatRight: 'Расположить справа', + floatNone: 'Расположение по-умолчанию', + dragImageHere: 'Перетащите сюда картинку', + selectFromFiles: 'Выбрать из файлов', + url: 'URL картинки', + remove: 'Удалить картинку' + }, + link: { + link: 'Ссылка', + insert: 'Вставить ссылку', + unlink: 'Убрать ссылку', + edit: 'Редактировать', + textToDisplay: 'Отображаемый текст', + url: 'URL для перехода', + openInNewWindow: 'Открывать в новом окне' + }, + table: { + table: 'Таблица' + }, + hr: { + insert: 'Вставить горизонтальную линию' + }, + style: { + style: 'Стиль', + normal: 'Нормальный', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркированный список', + ordered: 'Нумерованный список' + }, + options: { + help: 'Помощь', + fullscreen: 'На весь экран', + codeview: 'Исходный код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Уменьшить отступ', + indent: 'Увеличить отступ', + left: 'Выровнять по левому краю', + center: 'Выровнять по центру', + right: 'Выровнять по правому краю', + justify: 'Растянуть по ширине' + }, + color: { + recent: 'Последний цвет', + more: 'Еще цвета', + background: 'Цвет фона', + foreground: 'Цвет шрифта', + transparent: 'Прозрачный', + setTransparent: 'Сделать прозрачным', + reset: 'Сброс', + resetToDefault: 'Восстановить умолчания' + }, + shortcut: { + shortcuts: 'Сочетания клавиш', + close: 'Закрыть', + textFormatting: 'Форматирование текста', + action: 'Действие', + paragraphFormatting: 'Форматирование параграфа', + documentStyle: 'Стиль документа', + extraKeys: 'Дополнительные комбинации' + }, + history: { + undo: 'Отменить', + redo: 'Повтор' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-sk-SK.js b/vendor/assets/components/summernote/lang/summernote-sk-SK.js new file mode 100644 index 000000000..ac2a23b25 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-sk-SK.js @@ -0,0 +1,95 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sk-SK': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podtržené', + clear: 'Odstrániť štýl písma', + height: 'Výška riadku', + strikethrough: 'Preškrtnuté', + size: 'Veľkosť písma' + }, + image: { + image: 'Obrázok', + insert: 'Vložiť obrázok', + resizeFull: 'Pôvodná veľkosť', + resizeHalf: 'Polovičná veľkosť', + resizeQuarter: 'Štvrtinová veľkosť', + floatLeft: 'Umiestniť doľava', + floatRight: 'Umiestniť doprava', + floatNone: 'Bez zarovnania', + dragImageHere: 'Pretiahnuť sem obrázok', + selectFromFiles: 'Vybrať súbor', + url: 'URL obrázku' + }, + link: { + link: 'Odkaz', + insert: 'Vytvoriť odkaz', + unlink: 'Zrušiť odkaz', + edit: 'Upraviť', + textToDisplay: 'Zobrazovaný text', + url: 'Na akú URL adresu má tento odkaz viesť?', + openInNewWindow: 'Otvoriť v novom okne' + }, + table: { + table: 'Tabuľka' + }, + hr: { + insert: 'Vložit vodorovnú čiaru' + }, + style: { + style: 'Štýl', + normal: 'Normálny', + blockquote: 'Citácia', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový zoznam', + ordered: 'Číselný zoznam' + }, + options: { + help: 'Pomoc', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odstavec', + outdent: 'Zvečiť odsadenie', + indent: 'Zmenšiť odsadenie', + left: 'Zarovnať doľava', + center: 'Zarovnať na stred', + right: 'Zarovnať doprava', + justify: 'Zarovnať obojstranne' + }, + color: { + recent: 'Aktuálna farba', + more: 'Dalšie farby', + background: 'Farba pozadia', + foreground: 'Farba písma', + transparent: 'Priehľednosť', + setTransparent: 'Nastaviť priehľadnosť', + reset: 'Obnoviť', + resetToDefault: 'Obnoviť prednastavené' + }, + shortcut: { + shortcuts: 'Klávesové skratky', + close: 'Zavrieť', + textFormatting: 'Formátovanie textu', + action: 'Akcia', + paragraphFormatting: 'Formátovánie odstavca', + documentStyle: 'Štýl dokumentu' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok dopredu' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-sl-SI.js b/vendor/assets/components/summernote/lang/summernote-sl-SI.js new file mode 100644 index 000000000..819183d8e --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-sl-SI.js @@ -0,0 +1,99 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sl-SI': { + font: { + bold: 'Krepko', + italic: 'Ležeče', + underline: 'Podčrtano', + clear: 'Počisti oblikovanje izbire', + height: 'Razmik med vrsticami', + name: 'Pisava', + strikethrough: 'Prečrtano', + subscript: 'Podpisano', + superscript: 'Nadpisano', + size: 'Velikost pisave' + }, + image: { + image: 'Slika', + insert: 'Vstavi sliko', + resizeFull: 'Razširi na polno velikost', + resizeHalf: 'Razširi na polovico velikosti', + resizeQuarter: 'Razširi na četrtino velikosti', + floatLeft: 'Leva poravnava', + floatRight: 'Desna poravnava', + floatNone: 'Brez poravnave', + dragImageHere: 'Sem povlecite sliko', + selectFromFiles: 'Izberi sliko za nalaganje', + url: 'URL naslov slike', + remove: 'Odstrani sliko' + }, + link: { + link: 'Povezava', + insert: 'Vstavi povezavo', + unlink: 'Odstrani povezavo', + edit: 'Uredi', + textToDisplay: 'Prikazano besedilo', + url: 'Povezava', + openInNewWindow: 'Odpri v novem oknu' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Vstavi horizontalno črto' + }, + style: { + style: 'Slogi', + normal: 'Navadno besedilo', + blockquote: 'Citat', + pre: 'Koda', + h1: 'Naslov 1', + h2: 'Naslov 2', + h3: 'Naslov 3', + h4: 'Naslov 4', + h5: 'Naslov 5', + h6: 'Naslov 6' + }, + lists: { + unordered: 'Označen seznam', + ordered: 'Oštevilčen seznam' + }, + options: { + help: 'Pomoč', + fullscreen: 'Celozaslonski način', + codeview: 'Pregled HTML kode' + }, + paragraph: { + paragraph: 'Slogi odstavka', + outdent: 'Zmanjšaj odmik', + indent: 'Povečaj odmik', + left: 'Leva poravnava', + center: 'Desna poravnava', + right: 'Sredinska poravnava', + justify: 'Obojestranska poravnava' + }, + color: { + recent: 'Uporabi zadnjo barvo', + more: 'Več barv', + background: 'Barva ozadja', + foreground: 'Barva besedila', + transparent: 'Brez barve', + setTransparent: 'Brez barve', + reset: 'Ponastavi', + resetToDefault: 'Ponastavi na privzeto' + }, + shortcut: { + shortcuts: 'Bljižnice', + close: 'Zapri', + textFormatting: 'Oblikovanje besedila', + action: 'Dejanja', + paragraphFormatting: 'Oblikovanje odstavka', + documentStyle: 'Oblikovanje naslova' + }, + history: { + undo: 'Razveljavi', + redo: 'Uveljavi' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-sr-RS-Latin.js b/vendor/assets/components/summernote/lang/summernote-sr-RS-Latin.js new file mode 100644 index 000000000..b5f74e761 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-sr-RS-Latin.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Podebljano', + italic: 'Kurziv', + underline: 'Podvučeno', + clear: 'Ukloni stilove fonta', + height: 'Visina linije', + strikethrough: 'Precrtano', + size: 'Veličina fonta' + }, + image: { + image: 'Slika', + insert: 'Umetni sliku', + resizeFull: 'Puna veličina', + resizeHalf: 'Umanji na 50%', + resizeQuarter: 'Umanji na 25%', + floatLeft: 'Uz levu ivicu', + floatRight: 'Uz desnu ivicu', + floatNone: 'Bez ravnanja', + dragImageHere: 'Prevuci sliku ovde', + selectFromFiles: 'Izaberi iz datoteke', + url: 'Adresa slike', + remove: 'Ukloni sliku' + }, + link: { + link: 'Veza', + insert: 'Umetni vezu', + unlink: 'Ukloni vezu', + edit: 'Uredi', + textToDisplay: 'Tekst za prikaz', + url: 'Internet adresa', + openInNewWindow: 'Otvori u novom prozoru' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Umetni horizontalnu liniju' + }, + style: { + style: 'Stil', + normal: 'Normalni', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Zaglavlje 1', + h2: 'Zaglavlje 2', + h3: 'Zaglavlje 3', + h4: 'Zaglavlje 4', + h5: 'Zaglavlje 5', + h6: 'Zaglavlje 6' + }, + lists: { + unordered: 'Obična lista', + ordered: 'Numerisana lista' + }, + options: { + help: 'Pomoć', + fullscreen: 'Preko celog ekrana', + codeview: 'Izvorni kod' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Smanji uvlačenje', + indent: 'Povečaj uvlačenje', + left: 'Poravnaj u levo', + center: 'Centrirano', + right: 'Poravnaj u desno', + justify: 'Poravnaj obostrano' + }, + color: { + recent: 'Poslednja boja', + more: 'Više boja', + background: 'Boja pozadine', + foreground: 'Boja teksta', + transparent: 'Providna', + setTransparent: 'Providna', + reset: 'Opoziv', + resetToDefault: 'Podrazumevana' + }, + shortcut: { + shortcuts: 'Prečice sa tastature', + close: 'Zatvori', + textFormatting: 'Formatiranje teksta', + action: 'Akcija', + paragraphFormatting: 'Formatiranje paragrafa', + documentStyle: 'Stil dokumenta', + extraKeys: 'Dodatne kombinacije' + }, + history: { + undo: 'Poništi', + redo: 'Ponovi' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-sr-RS.js b/vendor/assets/components/summernote/lang/summernote-sr-RS.js new file mode 100644 index 000000000..dda6c7bd9 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-sr-RS.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Подебљано', + italic: 'Курзив', + underline: 'Подвучено', + clear: 'Уклони стилове фонта', + height: 'Висина линије', + strikethrough: 'Прецртано', + size: 'Величина фонта' + }, + image: { + image: 'Слика', + insert: 'Уметни слику', + resizeFull: 'Пуна величина', + resizeHalf: 'Умањи на 50%', + resizeQuarter: 'Умањи на 25%', + floatLeft: 'Уз леву ивицу', + floatRight: 'Уз десну ивицу', + floatNone: 'Без равнања', + dragImageHere: 'Превуци слику овде', + selectFromFiles: 'Изабери из датотеке', + url: 'Адреса слике', + remove: 'Уклони слику' + }, + link: { + link: 'Веза', + insert: 'Уметни везу', + unlink: 'Уклони везу', + edit: 'Уреди', + textToDisplay: 'Текст за приказ', + url: 'Интернет адреса', + openInNewWindow: 'Отвори у новом прозору' + }, + table: { + table: 'Табела' + }, + hr: { + insert: 'Уметни хоризонталну линију' + }, + style: { + style: 'Стил', + normal: 'Нормални', + blockquote: 'Цитат', + pre: 'Код', + h1: 'Заглавље 1', + h2: 'Заглавље 2', + h3: 'Заглавље 3', + h4: 'Заглавље 4', + h5: 'Заглавље 5', + h6: 'Заглавље 6' + }, + lists: { + unordered: 'Обична листа', + ordered: 'Нумерисана листа' + }, + options: { + help: 'Помоћ', + fullscreen: 'Преко целог екрана', + codeview: 'Изворни код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Смањи увлачење', + indent: 'Повечај увлачење', + left: 'Поравнај у лево', + center: 'Центрирано', + right: 'Поравнај у десно', + justify: 'Поравнај обострано' + }, + color: { + recent: 'Последња боја', + more: 'Више боја', + background: 'Боја позадине', + foreground: 'Боја текста', + transparent: 'Провидна', + setTransparent: 'Провидна', + reset: 'Опозив', + resetToDefault: 'Подразумевана' + }, + shortcut: { + shortcuts: 'Пречице са тастатуре', + close: 'Затвори', + textFormatting: 'Форматирање текста', + action: 'Акција', + paragraphFormatting: 'Форматирање параграфа', + documentStyle: 'Стил документа', + extraKeys: 'Додатне комбинације' + }, + history: { + undo: 'Поништи', + redo: 'Понови' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-sv-SE.js b/vendor/assets/components/summernote/lang/summernote-sv-SE.js new file mode 100644 index 000000000..2d7edb5d5 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-sv-SE.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sv-SE': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understruken', + clear: 'Radera formatering', + height: 'Radavstånd', + name: 'Teckensnitt', + strikethrough: 'Genomstruken', + size: 'Teckenstorlek' + }, + image: { + image: 'Bild', + insert: 'Infoga bild', + resizeFull: 'Full storlek', + resizeHalf: 'Halv storlek', + resizeQuarter: 'En fjärdedel i storlek', + floatLeft: 'Vänsterjusterad', + floatRight: 'Högerjusterad', + floatNone: 'Ingen justering', + dragImageHere: 'Dra en bild hit', + selectFromFiles: 'Välj från filer', + url: 'Länk till bild', + remove: 'Ta bort bild' + }, + link: { + link: 'Länk', + insert: 'Infoga länk', + unlink: 'Ta bort länk', + edit: 'Redigera', + textToDisplay: 'Visningstext', + url: 'Till vilken URL ska denna länk peka?', + openInNewWindow: 'Öppna i ett nytt fönster' + }, + table: { + table: 'Tabell' + }, + hr: { + insert: 'Infoga horisontell linje' + }, + style: { + style: 'Stil', + normal: 'Normal', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Rubrik 1', + h2: 'Rubrik 2', + h3: 'Rubrik 3', + h4: 'Rubrik 4', + h5: 'Rubrik 5', + h6: 'Rubrik 6' + }, + lists: { + unordered: 'Punktlista', + ordered: 'Numrerad lista' + }, + options: { + help: 'Hjälp', + fullscreen: 'Fullskärm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Justera text', + outdent: 'Minska indrag', + indent: 'Öka indrag', + left: 'Vänsterjusterad', + center: 'Centrerad', + right: 'Högerjusterad', + justify: 'Justera text' + }, + color: { + recent: 'Senast använda färg', + more: 'Fler färger', + background: 'Bakgrundsfärg', + foreground: 'Teckenfärg', + transparent: 'Genomskinlig', + setTransparent: 'Gör genomskinlig', + reset: 'Nollställ', + resetToDefault: 'Återställ till standard' + }, + shortcut: { + shortcuts: 'Kortkommandon', + close: 'Stäng', + textFormatting: 'Textformatering', + action: 'Funktion', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Ångra', + redo: 'Gör om' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-th-TH.js b/vendor/assets/components/summernote/lang/summernote-th-TH.js new file mode 100644 index 000000000..5326d5e55 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-th-TH.js @@ -0,0 +1,99 @@ +(function ($) { + $.extend($.summernote.lang, { + 'th-TH': { + font: { + bold: 'ตัวหนา', + italic: 'ตัวเอียง', + underline: 'ขีดเส้นใต้', + clear: 'ล้างรูปแบบตัวอักษร', + height: 'ความสูงบรรทัด', + name: 'แบบตัวอักษร', + strikethrough: 'ขีดฆ่า', + subscript: 'ตัวห้อย', + superscript: 'ตัวยก', + size: 'ขนาดตัวอักษร' + }, + image: { + image: 'รูปภาพ', + insert: 'แทรกรูปภาพ', + resizeFull: 'ปรับขนาดเท่าจริง', + resizeHalf: 'ปรับขนาดลง 50%', + resizeQuarter: 'ปรับขนาดลง 25%', + floatLeft: 'ชิดซ้าย', + floatRight: 'ชิดขวา', + floatNone: 'ไม่จัดตำแหน่ง', + dragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่', + selectFromFiles: 'เลือกไฟล์รูปภาพ', + url: 'ที่อยู่ URL ของรูปภาพ', + remove: 'ลบรูปภาพ' + }, + link: { + link: 'ตัวเชื่อมโยง', + insert: 'แทรกตัวเชื่อมโยง', + unlink: 'ยกเลิกตัวเชื่อมโยง', + edit: 'แก้ไข', + textToDisplay: 'ข้อความที่ให้แสดง', + url: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?', + openInNewWindow: 'เปิดในหน้าต่างใหม่' + }, + table: { + table: 'ตาราง' + }, + hr: { + insert: 'แทรกเส้นคั่น' + }, + style: { + style: 'รูปแบบ', + normal: 'ปกติ', + blockquote: 'ข้อความ', + pre: 'โค้ด', + h1: 'หัวข้อ 1', + h2: 'หัวข้อ 2', + h3: 'หัวข้อ 3', + h4: 'หัวข้อ 4', + h5: 'หัวข้อ 5', + h6: 'หัวข้อ 6' + }, + lists: { + unordered: 'รายการแบบไม่มีลำดับ', + ordered: 'รายการแบบมีลำดับ' + }, + options: { + help: 'ช่วยเหลือ', + fullscreen: 'ขยายเต็มหน้าจอ', + codeview: 'ซอร์สโค้ด' + }, + paragraph: { + paragraph: 'ย่อหน้า', + outdent: 'เยื้องซ้าย', + indent: 'เยื้องขวา', + left: 'จัดหน้าชิดซ้าย', + center: 'จัดหน้ากึ่งกลาง', + right: 'จัดหน้าชิดขวา', + justify: 'จัดบรรทัดเสมอกัน' + }, + color: { + recent: 'สีที่ใช้ล่าสุด', + more: 'สีอื่นๆ', + background: 'สีพื้นหลัง', + foreground: 'สีพื้นหน้า', + transparent: 'โปร่งแสง', + setTransparent: 'ตั้งค่าความโปร่งแสง', + reset: 'คืนค่า', + resetToDefault: 'คืนค่ามาตรฐาน' + }, + shortcut: { + shortcuts: 'แป้นลัด', + close: 'ปิด', + textFormatting: 'การจัดรูปแบบข้อความ', + action: 'การกระทำ', + paragraphFormatting: 'การจัดรูปแบบย่อหน้า', + documentStyle: 'รูปแบบของเอกสาร' + }, + history: { + undo: 'ยกเลิกการกระทำ', + redo: 'ทำซ้ำการกระทำ' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-tr-TR.js b/vendor/assets/components/summernote/lang/summernote-tr-TR.js new file mode 100644 index 000000000..ecb510410 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-tr-TR.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'tr-TR': { + font: { + bold: 'Kalın', + italic: 'İtalik', + underline: 'Altı çizili', + clear: 'Temizle', + height: 'Satır yüksekliği', + name: 'Yazı Tipi', + strikethrough: 'Üstü çizili', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Yazı tipi boyutu' + }, + image: { + image: 'Resim', + insert: 'Resim ekle', + resizeFull: 'Orjinal boyut', + resizeHalf: '1/2 boyut', + resizeQuarter: '1/4 boyut', + floatLeft: 'Sola hizala', + floatRight: 'Sağa hizala', + floatNone: 'Hizalamayı kaldır', + shapeRounded: 'Şekil: Yuvarlatılmış Köşe', + shapeCircle: 'Şekil: Daire', + shapeThumbnail: 'Şekil: K.Resim', + shapeNone: 'Şekil: Yok', + dragImageHere: 'Buraya sürükleyin', + selectFromFiles: 'Dosya seçin', + url: 'Resim bağlantısı', + remove: 'Resimi Kaldır' + }, + link: { + link: 'Bağlantı', + insert: 'Bağlantı ekle', + unlink: 'Bağlantıyı kaldır', + edit: 'Bağlantıyı düzenle', + textToDisplay: 'Görüntülemek için', + url: 'Bağlantı adresi?', + openInNewWindow: 'Yeni pencerede aç' + }, + table: { + table: 'Tablo' + }, + hr: { + insert: 'Yatay çizgi ekle' + }, + style: { + style: 'Biçim', + normal: 'Normal', + blockquote: 'Alıntı', + pre: 'Önbiçimli', + h1: 'Başlık 1', + h2: 'Başlık 2', + h3: 'Başlık 3', + h4: 'Başlık 4', + h5: 'Başlık 5', + h6: 'Başlık 6' + }, + lists: { + unordered: 'Madde işaretli liste', + ordered: 'Numaralı liste' + }, + options: { + help: 'Yardım', + fullscreen: 'Tam ekran', + codeview: 'HTML Kodu' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Girintiyi artır', + indent: 'Girintiyi azalt', + left: 'Sola hizala', + center: 'Ortaya hizala', + right: 'Sağa hizala', + justify: 'Yasla' + }, + color: { + recent: 'Son renk', + more: 'Daha fazla renk', + background: 'Arka plan rengi', + foreground: 'Yazı rengi', + transparent: 'Seffaflık', + setTransparent: 'Şeffaflığı ayarla', + reset: 'Sıfırla', + resetToDefault: 'Varsayılanlara sıfırla' + }, + shortcut: { + shortcuts: 'Kısayollar', + close: 'Kapat', + textFormatting: 'Yazı biçimlendirme', + action: 'Eylem', + paragraphFormatting: 'Paragraf biçimlendirme', + documentStyle: 'Biçim' + }, + history: { + undo: 'Geri al', + redo: 'Yeniden yap' + } + + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-uk-UA.js b/vendor/assets/components/summernote/lang/summernote-uk-UA.js new file mode 100644 index 000000000..c257f7284 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-uk-UA.js @@ -0,0 +1,99 @@ +(function ($) { + $.extend($.summernote.lang, { + 'uk-UA': { + font: { + bold: 'Напівжирний', + italic: 'Курсив', + underline: 'Підкреслений', + clear: 'Прибрати стилі шрифту', + height: 'Висота лінії', + name: 'Шрифт', + strikethrough: 'Закреслений', + subscript: 'Нижній індекс', + superscript: 'Верхній індекс', + size: 'Розмір шрифту' + }, + image: { + image: 'Картинка', + insert: 'Вставити картинку', + resizeFull: 'Відновити розмір', + resizeHalf: 'Зменшити до 50%', + resizeQuarter: 'Зменшити до 25%', + floatLeft: 'Розташувати ліворуч', + floatRight: 'Розташувати праворуч', + floatNone: 'Початкове розташування', + dragImageHere: 'Перетягніть сюди картинку', + selectFromFiles: 'Вибрати з файлів', + url: 'URL картинки', + remove: 'Видалити картинку' + }, + link: { + link: 'Посилання', + insert: 'Вставити посилання', + unlink: 'Прибрати посилання', + edit: 'Редагувати', + textToDisplay: 'Текст, що відображається', + url: 'URL для переходу', + openInNewWindow: 'Відкривати у новому вікні' + }, + table: { + table: 'Таблиця' + }, + hr: { + insert: 'Вставити горизонтальну лінію' + }, + style: { + style: 'Стиль', + normal: 'Нормальний', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркований список', + ordered: 'Нумерований список' + }, + options: { + help: 'Допомога', + fullscreen: 'На весь екран', + codeview: 'Початковий код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Зменшити відступ', + indent: 'Збільшити відступ', + left: 'Вирівняти по лівому краю', + center: 'Вирівняти по центру', + right: 'Вирівняти по правому краю', + justify: 'Розтягнути по ширині' + }, + color: { + recent: 'Останній колір', + more: 'Ще кольори', + background: 'Колір фону', + foreground: 'Колір шрифту', + transparent: 'Прозорий', + setTransparent: 'Зробити прозорим', + reset: 'Відновити', + resetToDefault: 'Відновити початкові' + }, + shortcut: { + shortcuts: 'Комбінації клавіш', + close: 'Закрити', + textFormatting: 'Форматування тексту', + action: 'Дія', + paragraphFormatting: 'Форматування параграфу', + documentStyle: 'Стиль документу' + }, + history: { + undo: 'Відмінити', + redo: 'Повторити' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-vi-VN.js b/vendor/assets/components/summernote/lang/summernote-vi-VN.js new file mode 100644 index 000000000..0451f1359 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-vi-VN.js @@ -0,0 +1,97 @@ +(function ($) { + $.extend($.summernote.lang, { + 'vi-VN': { + font: { + bold: 'In Đậm', + italic: 'In Nghiên', + underline: 'Gạch Dưới', + clear: 'Bỏ Định Dạng', + height: 'Khoảng Cách Hàng', + name: 'Phông Chữ', + strikethrough: 'Gạch Ngang', + size: 'Cỡ Chữ' + }, + image: { + image: 'Hình Ảnh', + insert: 'Chèn', + resizeFull: '100%', + resizeHalf: '50%', + resizeQuarter: '25%', + floatLeft: 'Canh Trái', + floatRight: 'Canh Phải', + floatNone: 'Canh Đều', + dragImageHere: 'Thả Ảnh Ở Đây', + selectFromFiles: 'Chọn Từ Files', + url: 'URL', + remove: 'Ghỡ Bỏ' + }, + link: { + link: 'Đường Dẫn', + insert: 'Chèn Đường Dẫn', + unlink: 'Ghỡ Đường Dẫn', + edit: 'Sửa', + textToDisplay: 'Text Hiển Thị', + url: 'URL', + openInNewWindow: 'Mở ở Cửa Sổ Mới' + }, + table: { + table: 'Bảng' + }, + hr: { + insert: 'Chèn Vào' + }, + style: { + style: 'Kiểu Chữ', + normal: 'Chữ Thường', + blockquote: 'Đoạn Trích', + pre: 'Mã Code', + h1: 'H1', + h2: 'H2', + h3: 'H3', + h4: 'H4', + h5: 'H5', + h6: 'H6' + }, + lists: { + unordered: 'Liệt Kê Danh Sách', + ordered: 'Liệt Kê Theo Số' + }, + options: { + help: 'Trợ Giúp', + fullscreen: 'Đầy Màn Hình', + codeview: 'Xem Dạng Code' + }, + paragraph: { + paragraph: 'Canh Lề', + outdent: 'Dịch Sang Trái', + indent: 'Dịch Sang Phải', + left: 'Canh Trái', + center: 'Canh Giữa', + right: 'Canh Phải', + justify: 'Canh Đều' + }, + color: { + recent: 'Màu Chữ', + more: 'Mở Rộng', + background: 'Màu Nền', + foreground: 'Màu Chữ', + transparent: 'Trong Suốt', + setTransparent: 'Nền Trong Suốt', + reset: 'Thiệt Lập Lại', + resetToDefault: 'Trở Lại Ban Đầu' + }, + shortcut: { + shortcuts: 'Phím Tắt', + close: 'Đóng', + textFormatting: 'Định Dạng Văn Bản', + action: 'Hành Động', + paragraphFormatting: 'Định Dạng', + documentStyle: 'Kiểu Văn Bản' + }, + history: { + undo: 'Lùi Lại', + redo: 'Làm Lại' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-zh-CN.js b/vendor/assets/components/summernote/lang/summernote-zh-CN.js new file mode 100644 index 000000000..50281c616 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-zh-CN.js @@ -0,0 +1,96 @@ +(function ($) { + $.extend($.summernote.lang, { + 'zh-CN': { + font: { + bold: '粗体', + italic: '斜体', + underline: '下划线', + clear: '清除格式', + height: '行高', + name: '字体', + strikethrough: '删除线', + size: '字号' + }, + image: { + image: '图片', + insert: '插入图片', + resizeFull: '调整至 100%', + resizeHalf: '调整至 50%', + resizeQuarter: '调整至 25%', + floatLeft: '左浮动', + floatRight: '右浮动', + floatNone: '不浮动', + dragImageHere: '将图片拖至此处', + selectFromFiles: '从本地上传', + url: '图片地址' + }, + link: { + link: '链接', + insert: '插入链接', + unlink: '去除链接', + edit: '编辑链接', + textToDisplay: '显示文本', + url: '链接地址', + openInNewWindow: '在新窗口打开' + }, + table: { + table: '表格' + }, + hr: { + insert: '水平线' + }, + style: { + style: '样式', + normal: '普通', + blockquote: '引用', + pre: '代码', + h1: '标题 1', + h2: '标题 2', + h3: '标题 3', + h4: '标题 4', + h5: '标题 5', + h6: '标题 6' + }, + lists: { + unordered: '无序列表', + ordered: '有序列表' + }, + options: { + help: '帮助', + fullscreen: '全屏', + codeview: '源代码' + }, + paragraph: { + paragraph: '段落', + outdent: '减少缩进', + indent: '增加缩进', + left: '左对齐', + center: '居中对齐', + right: '右对齐', + justify: '两端对齐' + }, + color: { + recent: '最近使用', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重置', + resetToDefault: '默认' + }, + shortcut: { + shortcuts: '快捷键', + close: '关闭', + textFormatting: '文本格式', + action: '动作', + paragraphFormatting: '段落格式', + documentStyle: '文档样式' + }, + history: { + undo: '撤销', + redo: '重做' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/lang/summernote-zh-TW.js b/vendor/assets/components/summernote/lang/summernote-zh-TW.js new file mode 100644 index 000000000..72a99c420 --- /dev/null +++ b/vendor/assets/components/summernote/lang/summernote-zh-TW.js @@ -0,0 +1,95 @@ +(function ($) { + $.extend($.summernote.lang, { + 'zh-TW': { + font: { + bold: '粗體', + italic: '斜體', + underline: '底線', + clear: '清除格式', + height: '行高', + strikethrough: '刪除線', + size: '字體大小' + }, + image: { + image: '圖片', + insert: '插入圖片', + resizeFull: '縮放至100%', + resizeHalf: '縮放至 50%', + resizeQuarter: '縮放至 25%', + floatLeft: '靠左浮動', + floatRight: '靠右浮動', + floatNone: '取消浮動', + dragImageHere: '將圖片拖曳至此處', + selectFromFiles: '從本機上傳', + url: '圖片網址' + }, + link: { + link: '連結', + insert: '插入連結', + unlink: '取消連結', + edit: '編輯連結', + textToDisplay: '顯示文字', + url: '連結網址', + openInNewWindow: '在新視窗開啟' + }, + table: { + table: '表格' + }, + hr: { + insert: '水平線' + }, + style: { + style: '樣式', + normal: '一般', + blockquote: '引用區塊', + pre: '程式碼區塊', + h1: '標題 1', + h2: '標題 2', + h3: '標題 3', + h4: '標題 4', + h5: '標題 5', + h6: '標題 6' + }, + lists: { + unordered: '項目清單', + ordered: '編號清單' + }, + options: { + help: '幫助', + fullscreen: '全螢幕', + codeview: '原始碼' + }, + paragraph: { + paragraph: '段落', + outdent: '取消縮排', + indent: '增加縮排', + left: '靠右對齊', + center: '靠中對齊', + right: '靠右對齊', + justify: '左右對齊' + }, + color: { + recent: '字型顏色', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重設', + resetToDefault: '默認' + }, + shortcut: { + shortcuts: '快捷鍵', + close: '關閉', + textFormatting: '文字格式', + action: '動作', + paragraphFormatting: '段落格式', + documentStyle: '文件格式' + }, + history: { + undo: '復原', + redo: '取消復原' + } + } + }); +})(jQuery); diff --git a/vendor/assets/components/summernote/meteor/README.md b/vendor/assets/components/summernote/meteor/README.md new file mode 100644 index 000000000..12e247afd --- /dev/null +++ b/vendor/assets/components/summernote/meteor/README.md @@ -0,0 +1,33 @@ +Build + Meteor status: [![Build Status](https://travis-ci.org/MeteorPackaging/summernote.svg?branch=meteor-integration)](https://github.com/MeteorPackaging/summernote/tree/meteor-integration/meteor) + +Packaging [summernote](http://summernote.org/) for [Meteor.js](http://meteor.com). + +# Versions + +* [summernote:summernote](https://atmospherejs.com/summernote/summernote) - includes jQuery and Bootstrap as dependencies +* [summernote:standalone](https://atmospherejs.com/summernote/standalone) - doesn't include any dependencies + + +# Meteor + +If you're new to Meteor, here's what the excitement is all about - +[watch the first two minutes](https://www.youtube.com/watch?v=fsi0aJ9yr2o); you'll be hooked by 1:28. +That screencast is from 2012. In the meantime, Meteor has become a mature JavaScript-everywhere web +development framework. Read more at [Why Meteor](http://www.meteorpedia.com/read/Why_Meteor). + + +# Issues + +If you encounter an issue while using this package, please CC @dandv when you file it in this repo. + + +# DONE + +* Instantiation test + + +# TODO + +* Make sure the library works with Meteor's reactivity - for example to auto-save to a collection + transparently after the text changes. +* Tests ensuring correct event handling on template re-rendering diff --git a/vendor/assets/components/summernote/meteor/package-standalone.js b/vendor/assets/components/summernote/meteor/package-standalone.js new file mode 100644 index 000000000..436b507a7 --- /dev/null +++ b/vendor/assets/components/summernote/meteor/package-standalone.js @@ -0,0 +1,36 @@ +// package metadata file for Meteor.js +'use strict'; + +var packageName = 'summernote:standalone'; // http://atmospherejs.com/summernote:standalone +var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. + +var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); + +Package.describe({ + name: packageName, + summary: 'summernote standalone (official): WYSIWYG editor with embedded images support, packaged without deps', + version: packageJson.version, + git: 'https://github.com/summernote/summernote.git' +}); + +Package.onUse(function (api) { + api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); + // no exports - summernote adds itself to jQuery + api.addFiles([ + 'dist/summernote.js', + 'dist/summernote.css' + ], where); +}); + +Package.onTest(function (api) { + // load dependencies for test only, before loading the package + api.use(['twbs:bootstrap@3.3.1', 'fortawesome:fontawesome@4.2.0'], where); + + // load our package + api.use(packageName, where); + + // load the test runner + api.use('tinytest', where); + + api.addFiles('meteor/test.js', where); +}); diff --git a/vendor/assets/components/summernote/meteor/package.js b/vendor/assets/components/summernote/meteor/package.js new file mode 100644 index 000000000..b03296f76 --- /dev/null +++ b/vendor/assets/components/summernote/meteor/package.js @@ -0,0 +1,35 @@ +// package metadata file for Meteor.js +'use strict'; + +var packageName = 'summernote:summernote'; // http://atmospherejs.com/summernote:summernote +var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. + +var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); + +Package.describe({ + name: packageName, + summary: 'summernote (official): jQuery+Bootstrap+FontAwesome WYSIWYG editor with embedded images support', + version: packageJson.version, + git: 'https://github.com/summernote/summernote.git' +}); + +Package.onUse(function (api) { + api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); + api.use([ + 'jquery', + 'twbs:bootstrap@3.3.1', + 'fortawesome:fontawesome@4.2.0' + ], where); + // no exports - summernote adds itself to jQuery + api.addFiles([ + 'dist/summernote.js', + 'dist/summernote.css' + ], where); +}); + +Package.onTest(function (api) { + api.use(packageName, where); + api.use('tinytest', where); + + api.addFiles('meteor/test.js', where); +}); diff --git a/vendor/assets/components/summernote/meteor/publish.sh b/vendor/assets/components/summernote/meteor/publish.sh new file mode 100755 index 000000000..56cd665ef --- /dev/null +++ b/vendor/assets/components/summernote/meteor/publish.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Publish package to Meteor's repository, Atmospherejs.com + +# Make sure Meteor is installed, per https://www.meteor.com/install. +# The curl'ed script is totally safe; takes 2 minutes to read its source and check. +type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; } + +# sanity check: make sure we're in the root directory of the checkout +cd "$( dirname "$0" )/.." + +ALL_EXIT_CODE=0 + +# test any package*.js packages we may have, e.g. package.js, package-compat.js +for PACKAGE_FILE in meteor/package*.js; do + + # Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily + cp $PACKAGE_FILE ./package.js + + # publish package, creating it if it's the first time we're publishing + PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d "'" -f 2) + + echo "Publishing $PACKAGE_NAME..." + + # Attempt to re-publish the package - the most common operation once the initial release has + # been made. If the package name was changed (rare), you'll have to pass the --create flag. + meteor publish "$@"; EXIT_CODE=$? + ALL_EXIT_CODE=$(( $ALL_EXIT_CODE + $EXIT_CODE )) + if (( $EXIT_CODE == 0 )); then + echo "Thanks for releasing a new version. You can see it at" + echo "https://atmospherejs.com/${PACKAGE_NAME/://}" + else + echo "We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14" + fi + + # rm the temporary build files and package.js + rm -rf ".build.$PACKAGE_NAME" versions.json package.js + +done + +exit $ALL_EXIT_CODE diff --git a/vendor/assets/components/summernote/meteor/runtests.sh b/vendor/assets/components/summernote/meteor/runtests.sh new file mode 100755 index 000000000..dec7b3b5a --- /dev/null +++ b/vendor/assets/components/summernote/meteor/runtests.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# Test Meteor package before publishing to Atmospherejs.com + +# Make sure Meteor is installed, per https://www.meteor.com/install. +# The curl'ed script is totally safe; takes 2 minutes to read its source and check. +type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; } + +# sanity check: make sure we're in the root directory of the checkout +cd "$( dirname "$0" )/.." + +ALL_EXIT_CODE=0 + +# test any package*.js packages we may have, e.g. package.js, package-standalone.js +for PACKAGE_FILE in meteor/package*.js; do + + # Meteor expects package.js in the root dir of the checkout, so copy there our package file under that name, temporarily + cp $PACKAGE_FILE ./package.js + + PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d "'" -f 2) + + echo "### Testing $PACKAGE_NAME..." + + # provide an invalid MONGO_URL so Meteor doesn't bog us down with an empty Mongo database + if [ $# -gt 0 ]; then + # interpret any parameter to mean we want an interactive test + MONGO_URL=mongodb:// meteor test-packages ./ + else + # automated/CI test with phantomjs + spacejam --mongo-url mongodb:// test-packages ./ + ALL_EXIT_CODES=$(( $ALL_EXIT_CODES + $? )) + fi + + # delete temporary build files and package.js + rm -rf .build.* versions.json package.js + +done + +exit $ALL_EXIT_CODES diff --git a/vendor/assets/components/summernote/meteor/test.js b/vendor/assets/components/summernote/meteor/test.js new file mode 100644 index 000000000..87b6d5e7e --- /dev/null +++ b/vendor/assets/components/summernote/meteor/test.js @@ -0,0 +1,9 @@ +'use strict'; + +Tinytest.add('Instantiation', function (test) { + var editor = document.createElement('div'); + document.body.appendChild(editor); + $(editor).summernote(); + + test.equal(typeof $(editor).code(), 'string', 'Instantiation'); +}); diff --git a/vendor/assets/components/summernote/package.json b/vendor/assets/components/summernote/package.json new file mode 100644 index 000000000..e5b088d60 --- /dev/null +++ b/vendor/assets/components/summernote/package.json @@ -0,0 +1,33 @@ +{ + "name": "summernote", + "description": "Super Simple WYSIWYG Editor on Bootstrap", + "version": "0.6.6", + "keywords": [ + "editor", + "bootstrap", + "WYSIWYG" + ], + "repository": { + "type": "git", + "url": "https://github.com/summernote/summernote.git" + }, + "author": { + "name": "Hackerwins", + "email": "" + }, + "devDependencies": { + "load-grunt-tasks": "0.2.0", + "requirejs": "2.1.9", + "grunt": "*", + "grunt-contrib-jshint": "0.7.2", + "grunt-contrib-qunit": "0.5.2", + "grunt-contrib-uglify": "~0.2.2", + "grunt-contrib-watch": "*", + "grunt-contrib-connect": "*", + "grunt-contrib-compress": "*", + "grunt-recess": "*", + "grunt-exec": "^0.4.6", + "connect-livereload": "*", + "open": "0.0.4" + } +} diff --git a/vendor/assets/components/summernote/plugin/summernote-ext-hello.js b/vendor/assets/components/summernote/plugin/summernote-ext-hello.js new file mode 100644 index 000000000..cb13fc7a5 --- /dev/null +++ b/vendor/assets/components/summernote/plugin/summernote-ext-hello.js @@ -0,0 +1,89 @@ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else { + // Browser globals: jQuery + factory(window.jQuery); + } +}(function ($) { + // template + var tmpl = $.summernote.renderer.getTemplate(); + + /** + * @class plugin.hello + * + * Hello Plugin + */ + $.summernote.addPlugin({ + /** @property {String} name name of plugin */ + name: 'hello', + /** + * @property {Object} buttons + * @property {Function} buttons.hello function to make button + * @property {Function} buttons.helloDropdown function to make button + * @property {Function} buttons.helloImage function to make button + */ + buttons: { // buttons + hello: function () { + + return tmpl.iconButton('fa fa-header', { + event : 'hello', + title: 'hello', + hide: true + }); + }, + helloDropdown: function () { + + + var list = '
    17. summernote
    18. '; + list += '
    19. Code Mirror
    20. '; + var dropdown = ''; + + return tmpl.iconButton('fa fa-header', { + title: 'hello', + hide: true, + dropdown : dropdown + }); + }, + helloImage : function () { + return tmpl.iconButton('fa fa-file-image-o', { + event : 'helloImage', + title: 'helloImage', + hide: true + }); + } + + }, + + /** + * @property {Object} events + * @property {Function} events.hello run function when button that has a 'hello' event name fires click + * @property {Function} events.helloDropdown run function when button that has a 'helloDropdown' event name fires click + * @property {Function} events.helloImage run function when button that has a 'helloImage' event name fires click + */ + events: { // events + hello: function (event, editor, layoutInfo) { + // Get current editable node + var $editable = layoutInfo.editable(); + + // Call insertText with 'hello' + editor.insertText($editable, 'hello '); + }, + helloDropdown: function (event, editor, layoutInfo, value) { + // Get current editable node + var $editable = layoutInfo.editable(); + + // Call insertText with 'hello' + editor.insertText($editable, 'hello ' + value + '!!!!'); + }, + helloImage : function (event, editor, layoutInfo) { + var $editable = layoutInfo.editable(); + + var img = $(''); + editor.insertNode($editable, img[0]); + } + } + }); +})); diff --git a/vendor/assets/components/summernote/plugin/summernote-ext-video.js b/vendor/assets/components/summernote/plugin/summernote-ext-video.js new file mode 100644 index 000000000..4f71bc738 --- /dev/null +++ b/vendor/assets/components/summernote/plugin/summernote-ext-video.js @@ -0,0 +1,573 @@ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else { + // Browser globals: jQuery + factory(window.jQuery); + } +}(function ($) { + // template + var tmpl = $.summernote.renderer.getTemplate(); + + // core functions: range, dom + var range = $.summernote.core.range; + var dom = $.summernote.core.dom; + + /** + * createVideoNode + * + * @member plugin.video + * @private + * @param {String} url + * @return {Node} + */ + var createVideoNode = function (url) { + // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm) + var ytRegExp = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; + var ytMatch = url.match(ytRegExp); + + var igRegExp = /\/\/instagram.com\/p\/(.[a-zA-Z0-9]*)/; + var igMatch = url.match(igRegExp); + + var vRegExp = /\/\/vine.co\/v\/(.[a-zA-Z0-9]*)/; + var vMatch = url.match(vRegExp); + + var vimRegExp = /\/\/(player.)?vimeo.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/; + var vimMatch = url.match(vimRegExp); + + var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/; + var dmMatch = url.match(dmRegExp); + + var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)\.html/; + var youkuMatch = url.match(youkuRegExp); + + var mp4RegExp = /^.+.(mp4|m4v)$/; + var mp4Match = url.match(mp4RegExp); + + var oggRegExp = /^.+.(ogg|ogv)$/; + var oggMatch = url.match(oggRegExp); + + var webmRegExp = /^.+.(webm)$/; + var webmMatch = url.match(webmRegExp); + + var $video; + if (ytMatch && ytMatch[1].length === 11) { + var youtubeId = ytMatch[1]; + $video = $(''); - html = html.replace(/\[video(.*?)\]([\w\W]*?)\[\/video\]/gi, '$2'); - html = html.replace(/\[audio(.*?)\]([\w\W]*?)\[\/audio\]/gi, '$2'); - html = html.replace(/\[embed(.*?)\]([\w\W]*?)\[\/embed\]/gi, '$2'); - html = html.replace(/\[object(.*?)\]([\w\W]*?)\[\/object\]/gi, '$2'); - html = html.replace(/\[param(.*?)\]/gi, ''); - html = html.replace(/\[img(.*?)\]/gi, ''); - - // convert div to p - if (this.opts.convertDivs) - { - html = html.replace(/([\w\W]*?)<\/div>/gi, '

      $2

      '); - html = html.replace(/<\/div>

      /gi, '

      '); - html = html.replace(/<\/p><\/div>/gi, '

      '); - } - - if (this.currentOrParentIs('LI')) - { - html = html.replace(/

      ([\w\W]*?)<\/p>/gi, '$1
      '); - } - else - { - html = this.cleanParagraphy(html); - } - - // remove span - html = html.replace(/([\w\W]*?)<\/span>/gi, '$2'); - - // remove empty - html = html.replace(//gi, ''); - html = html.replace(/<[^\/>][^>][^img|param|source]*>(\s*|\t*|\n*| |
      )<\/[^>]+>/gi, ''); - - html = html.replace(/\n{3,}/gi, '\n'); - - // remove dirty p - html = html.replace(/

      /gi, '

      '); - html = html.replace(/<\/p><\/p>/gi, '

      '); - - html = html.replace(/
    21. (\s*|\t*|\n*)

      /gi, '

    22. '); - html = html.replace(/<\/p>(\s*|\t*|\n*)<\/li>/gi, '
    23. '); - - if (this.opts.linebreaks === true) - { - html = html.replace(/([\w\W]*?)<\/p>/gi, '$2
      '); - } - - // remove empty finally - html = html.replace(/<[^\/>][^>][^img|param|source]*>(\s*|\t*|\n*| |
      )<\/[^>]+>/gi, ''); - - // remove safari local images - html = html.replace(//gi, ''); - - // remove p in td - html = html.replace(/(\s*|\t*|\n*)

      ([\w\W]*?)<\/p>(\s*|\t*|\n*)<\/td>/gi, '$3'); - - // remove divs - html = html.replace(/([\w\W]*?)<\/div>/gi, '$2'); - html = html.replace(/([\w\W]*?)<\/div>/gi, '$2'); - - // FF specific - this.pasteClipboardMozilla = false; - if (this.browser('mozilla')) - { - if (this.opts.clipboardUpload) - { - var matches = html.match(//gi); - if (matches !== null) - { - this.pasteClipboardMozilla = matches; - for (k in matches) - { - var img = matches[k].replace('$/gi.test(html)) - { - html = html.replace(/
      $/gi, ''); - } - } - - // bullets again - html = html.replace(/

      •([\w\W]*?)<\/p>/gi, '

    24. $1
    25. '); - - // ie inserts a blank font tags when pasting - while (/([\w\W]*?)<\/font>/gi.test(html)) - { - html = html.replace(/([\w\W]*?)<\/font>/gi, '$1'); - } - - // ms word lists breakline - html = html.replace(/

      \n?

    26. /gi, '
    27. '); - if (this.browser('msie') && !this.isIe11()) - { - html = html.replace(/\n/g, ''); - } - - this.pasteInsert(html); - - }, - pastePre: function(s) - { - s = s.replace(/
      |<\/H[1-6]>|<\/p>|<\/div>/gi, '\n'); - - var tmp = this.document.createElement('div'); - tmp.innerHTML = s; - return this.cleanEncodeEntities(tmp.textContent || tmp.innerText); - }, - pasteInsert: function(html) - { - if (this.selectall) - { - if (!this.opts.linebreaks) this.$editor.html(this.opts.emptyHtml); - else this.$editor.html(''); - - this.$editor.focus(); - } - - html = this.callback('pasteAfter', false, html); - - this.insertHtml(html); - - this.selectall = false; - setTimeout($.proxy(function() - { - this.rtePaste = false; - - // FF specific - if (this.browser('mozilla')) - { - this.$editor.find('p:empty').remove() - } - if (this.pasteClipboardMozilla !== false) - { - this.pasteClipboardUploadMozilla(); - } - - }, this), 100); - - if (this.opts.autoresize && this.fullscreen !== true) $(this.document.body).scrollTop(this.saveScroll); - else this.$editor.scrollTop(this.saveScroll); - }, - pasteClipboardUploadMozilla: function() - { - var imgs = this.$editor.find('img[data-mozilla-paste-image]'); - $.each(imgs, $.proxy(function(i,s) - { - var $s = $(s); - var arr = s.src.split(","); - var data = arr[1]; // raw base64 - var contentType = arr[0].split(";")[0].split(":")[1]; - - $.post(this.opts.clipboardUploadUrl, { - contentType: contentType, - data: data - }, - $.proxy(function(data) - { - var json = (typeof data === 'string' ? $.parseJSON(data) : data); - $s.attr('src', json.filelink); - $s.removeAttr('data-mozilla-paste-image'); - - this.sync(); - - // upload callback - this.callback('imageUpload', $s, json); - - }, this)); - - }, this)); - }, - pasteClipboardUpload: function(e) - { - var result = e.target.result; - var arr = result.split(","); - var data = arr[1]; // raw base64 - var contentType = arr[0].split(";")[0].split(":")[1]; - - if (this.opts.clipboardUpload) - { - $.post(this.opts.clipboardUploadUrl, { - contentType: contentType, - data: data - }, - $.proxy(function(data) - { - var json = (typeof data === 'string' ? $.parseJSON(data) : data); - - var html = ''; - this.execCommand('inserthtml', html, false); - - var image = $(this.$editor.find('img#clipboard-image-marker')); - - if (image.length) image.removeAttr('id'); - else image = false; - - this.sync(); - - // upload callback - if (image) - { - this.callback('imageUpload', image, json); - } - - - }, this)); - } - else - { - this.insertHtml(''); - } - }, - - // BUFFER - bufferSet: function(html) - { - if (html !== undefined) this.opts.buffer.push(html); - else - { - this.selectionSave(); - this.opts.buffer.push(this.$editor.html()); - this.selectionRemoveMarkers('buffer'); - } - }, - bufferUndo: function() - { - if (this.opts.buffer.length === 0) - { - this.$editor.focus(); - return; - } - - // rebuffer - this.selectionSave(); - this.opts.rebuffer.push(this.$editor.html()); - this.selectionRestore(false, true); - - this.$editor.html(this.opts.buffer.pop()); - - this.selectionRestore(); - setTimeout($.proxy(this.observeStart, this), 100); - }, - bufferRedo: function() - { - if (this.opts.rebuffer.length === 0) - { - this.$editor.focus(); - return false; - } - - // buffer - this.selectionSave(); - this.opts.buffer.push(this.$editor.html()); - this.selectionRestore(false, true); - - this.$editor.html(this.opts.rebuffer.pop()); - this.selectionRestore(true); - setTimeout($.proxy(this.observeStart, this), 4); - }, - - // OBSERVE - observeStart: function() - { - this.observeImages(); - - if (this.opts.observeLinks) this.observeLinks(); - }, - observeLinks: function() - { - this.$editor.find('a').on('click', $.proxy(this.linkObserver, this)); - this.$editor.on('click.redactor', $.proxy(function(e) - { - this.linkObserverTooltipClose(e); - - }, this)); - $(document).on('click.redactor', $.proxy(function(e) - { - this.linkObserverTooltipClose(e); - - }, this)); - }, - observeImages: function() - { - if (this.opts.observeImages === false) return false; - - this.$editor.find('img').each($.proxy(function(i, elem) - { - if (this.browser('msie')) $(elem).attr('unselectable', 'on'); - this.imageResize(elem); - - }, this)); - }, - linkObserver: function(e) - { - var $link = $(e.target); - var pos = $link.offset(); - if (this.opts.iframe) - { - var posFrame = this.$frame.offset(); - pos.top = posFrame.top + (pos.top - $(this.document).scrollTop()); - pos.left += posFrame.left; - } - - var tooltip = $(''); - - var href = $link.attr('href'); - if (href.length > 24) href = href.substring(0,24) + '...'; - - var aLink = $('' + href + '').on('click', $.proxy(function(e) - { - this.linkObserverTooltipClose(false); - }, this)); - - var aEdit = $('' + this.opts.curLang.edit + '').on('click', $.proxy(function(e) - { - e.preventDefault(); - this.linkShow(); - this.linkObserverTooltipClose(false); - - }, this)); - - var aUnlink = $('' + this.opts.curLang.unlink + '').on('click', $.proxy(function(e) - { - e.preventDefault(); - this.execCommand('unlink'); - this.linkObserverTooltipClose(false); - - }, this)); - - - tooltip.append(aLink); - tooltip.append(' | '); - tooltip.append(aEdit); - tooltip.append(' | '); - tooltip.append(aUnlink); - tooltip.css({ - top: (pos.top + 20) + 'px', - left: pos.left + 'px' - }); - - $('.redactor-link-tooltip').remove(); - $('body').append(tooltip); - }, - linkObserverTooltipClose: function(e) - { - if (e !== false && e.target.tagName == 'A') return false; - $('.redactor-link-tooltip').remove(); - }, - - // SELECTION - getSelection: function() - { - if (!this.opts.rangy) return this.document.getSelection(); - else // rangy - { - if (!this.opts.iframe) return rangy.getSelection(); - else return rangy.getSelection(this.$frame[0]); - } - }, - getRange: function() - { - if (!this.opts.rangy) - { - if (this.document.getSelection) - { - var sel = this.getSelection(); - if (sel.getRangeAt && sel.rangeCount) return sel.getRangeAt(0); - } - - return this.document.createRange(); - } - else // rangy - { - if (!this.opts.iframe) return rangy.createRange(); - else return rangy.createRange(this.iframeDoc()); - } - }, - selectionElement: function(node) - { - this.setCaret(node); - }, - selectionStart: function(node) - { - this.selectionSet(node[0] || node, 0, null, 0); - }, - selectionEnd: function(node) - { - this.selectionSet(node[0] || node, 1, null, 1); - }, - selectionSet: function(orgn, orgo, focn, foco) - { - if (focn == null) focn = orgn; - if (foco == null) foco = orgo; - - var sel = this.getSelection(); - if (!sel) return; - - var range = this.getRange(); - range.setStart(orgn, orgo); - range.setEnd(focn, foco ); - - try { - sel.removeAllRanges(); - } catch (e) {} - - sel.addRange(range); - }, - selectionWrap: function(tag) - { - tag = tag.toLowerCase(); - - var block = this.getBlock(); - if (block) - { - var wrapper = this.formatChangeTag(block, tag); - this.sync(); - return wrapper; - } - - var sel = this.getSelection(); - var range = sel.getRangeAt(0); - var wrapper = document.createElement(tag); - wrapper.appendChild(range.extractContents()); - range.insertNode(wrapper); - - this.selectionElement(wrapper); - - return wrapper; - }, - selectionAll: function() - { - var range = this.getRange(); - range.selectNodeContents(this.$editor[0]); - - var sel = this.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); - }, - selectionRemove: function() - { - this.getSelection().removeAllRanges(); - }, - getCaretOffset: function (element) - { - var caretOffset = 0; - - var range = this.getRange(); - var preCaretRange = range.cloneRange(); - preCaretRange.selectNodeContents(element); - preCaretRange.setEnd(range.endContainer, range.endOffset); - caretOffset = $.trim(preCaretRange.toString()).length; - - return caretOffset; - }, - getCaretOffsetRange: function() - { - return new Range(this.getSelection().getRangeAt(0)); - }, - setCaret: function (el, start, end) - { - if (typeof end === 'undefined') end = start; - el = el[0] || el; - - var range = this.getRange(); - range.selectNodeContents(el); - - var textNodes = this.getTextNodesIn(el); - var foundStart = false; - var charCount = 0, endCharCount; - - if (textNodes.length == 1 && start) - { - range.setStart(textNodes[0], start); - range.setEnd(textNodes[0], end); - } - else - { - for (var i = 0, textNode; textNode = textNodes[i++];) - { - endCharCount = charCount + textNode.length; - if (!foundStart && start >= charCount && (start < endCharCount || (start == endCharCount && i < textNodes.length))) - { - range.setStart(textNode, start - charCount); - foundStart = true; - } - - if (foundStart && end <= endCharCount) - { - range.setEnd( textNode, end - charCount ); - break; - } - - charCount = endCharCount; - } - } - - var sel = this.getSelection(); - sel.removeAllRanges(); - sel.addRange( range ); - }, - getTextNodesIn: function (node) - { - var textNodes = []; - - if (node.nodeType == 3) textNodes.push(node); - else - { - var children = node.childNodes; - for (var i = 0, len = children.length; i < len; ++i) - { - textNodes.push.apply(textNodes, this.getTextNodesIn(children[i])); - } - } - - return textNodes; - }, - - // GET ELEMENTS - getCurrent: function() - { - var el = false; - var sel = this.getSelection(); - - if (sel && sel.rangeCount > 0) el = sel.getRangeAt(0).startContainer; - - return this.isParentRedactor(el); - }, - getParent: function(elem) - { - elem = elem || this.getCurrent(); - if (elem) return this.isParentRedactor( $( elem ).parent()[0] ); - else return false; - }, - getBlock: function(node) - { - if (typeof node === 'undefined') node = this.getCurrent(); - - while (node) - { - if (this.nodeTestBlocks(node)) - { - if ($(node).hasClass('redactor_editor')) return false; - return node; - } - - node = node.parentNode; - } - - return false; - }, - getBlocks: function(nodes) - { - var newnodes = []; - if (typeof nodes == 'undefined') - { - var range = this.getRange(); - if (range && range.collapsed === true) return [this.getBlock()]; - var nodes = this.getNodes(range); - } - - $.each(nodes, $.proxy(function(i,node) - { - if (this.opts.iframe === false && $(node).parents('div.redactor_editor').size() == 0) return false; - if (this.nodeTestBlocks(node)) newnodes.push(node); - - }, this)); - - if (newnodes.length === 0) newnodes = [this.getBlock()]; - - return newnodes; - }, - nodeTestBlocks: function(node) - { - return node.nodeType == 1 && this.rTestBlock.test(node.nodeName); - }, - tagTestBlock: function(tag) - { - return this.rTestBlock.test(tag); - }, - getNodes: function(range, tag) - { - if (typeof range == 'undefined' || range == false) var range = this.getRange(); - if (range && range.collapsed === true) - { - if (typeof tag === 'undefined' && this.tagTestBlock(tag)) - { - var block = this.getBlock(); - if (block.tagName == tag) return [block]; - else return []; - } - else - { - return [this.getCurrent()]; - } - } - - var nodes = [], finalnodes = []; - - var sel = this.document.getSelection(); - if (!sel.isCollapsed) nodes = this.getRangeSelectedNodes(sel.getRangeAt(0)); - - $.each(nodes, $.proxy(function(i,node) - { - if (this.opts.iframe === false && $(node).parents('div.redactor_editor').size() == 0) return false; - - if (typeof tag === 'undefined') - { - if ($.trim(node.textContent) != '') - { - finalnodes.push(node); - } - } - else if (node.tagName == tag) - { - finalnodes.push(node); - } - - }, this)); - - if (finalnodes.length == 0) - { - if (typeof tag === 'undefined' && this.tagTestBlock(tag)) - { - var block = this.getBlock(); - if (block.tagName == tag) return finalnodes.push(block); - else return []; - } - else - { - finalnodes.push(this.getCurrent()); - } - } - - // last element filtering - var last = finalnodes[finalnodes.length-1]; - if (this.nodeTestBlocks(last)) - { - finalnodes = finalnodes.slice(0, -1); - } - - return finalnodes; - }, - getElement: function(node) - { - if (!node) node = this.getCurrent(); - while (node) - { - if (node.nodeType == 1) - { - if ($(node).hasClass('redactor_editor')) return false; - return node; - } - - node = node.parentNode; - } - - return false; - }, - getRangeSelectedNodes: function(range) - { - range = range || this.getRange(); - var node = range.startContainer; - var endNode = range.endContainer; - - if (node == endNode) return [node]; - - var rangeNodes = []; - while (node && node != endNode) - { - rangeNodes.push(node = this.nextNode(node)); - } - - node = range.startContainer; - while (node && node != range.commonAncestorContainer) - { - rangeNodes.unshift(node); - node = node.parentNode; - } - - return rangeNodes; - }, - nextNode: function(node) - { - if (node.hasChildNodes()) return node.firstChild; - else - { - while (node && !node.nextSibling) - { - node = node.parentNode; - } - - if (!node) return null; - return node.nextSibling; - } - }, - - // GET SELECTION HTML OR TEXT - getSelectionText: function() - { - return this.getSelection().toString(); - }, - getSelectionHtml: function() - { - var html = ''; - - var sel = this.getSelection(); - if (sel.rangeCount) - { - var container = this.document.createElement( "div" ); - var len = sel.rangeCount; - for (var i = 0; i < len; ++i) - { - container.appendChild(sel.getRangeAt(i).cloneContents()); - } - - html = container.innerHTML; - } - - return this.syncClean(html); - }, - - // SAVE & RESTORE - selectionSave: function() - { - if (!this.isFocused()) this.$editor.focus(); - - if (!this.opts.rangy) - { - this.selectionCreateMarker(this.getRange()); - } - // rangy - else - { - this.savedSel = rangy.saveSelection(); - } - }, - selectionCreateMarker: function(range, remove) - { - if (!range) return; - - var node1 = $('' + this.opts.invisibleSpace + '', this.document)[0]; - var node2 = $('' + this.opts.invisibleSpace + '', this.document)[0]; - - if (range.collapsed === true) - { - this.selectionSetMarker(range, node1, true); - } - else - { - this.selectionSetMarker(range, node1, true); - this.selectionSetMarker(range, node2, false); - } - - this.savedSel = this.$editor.html(); - - this.selectionRestore(false, false); - }, - selectionSetMarker: function(range, node, type) - { - var boundaryRange = range.cloneRange(); - - boundaryRange.collapse(type); - - boundaryRange.insertNode(node); - boundaryRange.detach(); - }, - selectionRestore: function(replace, remove) - { - if (!this.opts.rangy) - { - if (replace === true && this.savedSel) - { - this.$editor.html(this.savedSel); - } - - var node1 = this.$editor.find('span#selection-marker-1'); - var node2 = this.$editor.find('span#selection-marker-2'); - - if (this.browser('mozilla')) - { - this.$editor.focus(); - } - else if (!this.isFocused()) - { - this.$editor.focus(); - } - - if (node1.length != 0 && node2.length != 0) - { - this.selectionSet(node1[0], 0, node2[0], 0); - } - else if (node1.length != 0) - { - this.selectionSet(node1[0], 0, null, 0); - } - - if (remove !== false) - { - this.selectionRemoveMarkers(); - this.savedSel = false; - } - } - // rangy - else - { - rangy.restoreSelection(this.savedSel); - } - }, - selectionRemoveMarkers: function(type) - { - if (!this.opts.rangy) - { - $.each(this.$editor.find('span.redactor-selection-marker'), function() - { - var html = $.trim($(this).html().replace(/[^\u0000-\u1C7F]/g, '')); - if (html == '') - { - $(this).remove(); - } - else - { - $(this).removeAttr('class').removeAttr('id'); - } - }); - } - // rangy - else - { - rangy.removeMarkers(this.savedSel); - } - }, - - // TABLE - tableShow: function() - { - this.selectionSave(); - - this.modalInit(this.opts.curLang.table, this.opts.modal_table, 300, $.proxy(function() - { - $('#redactor_insert_table_btn').click($.proxy(this.tableInsert, this)); - - setTimeout(function() - { - $('#redactor_table_rows').focus(); - - }, 200); - - }, this)); - }, - tableInsert: function() - { - var rows = $('#redactor_table_rows').val(), - columns = $('#redactor_table_columns').val(), - $table_box = $('
      '), - tableId = Math.floor(Math.random() * 99999), - $table = $('
      '), - i, $row, z, $column; - - for (i = 0; i < rows; i++) - { - $row = $(''); - - for (z = 0; z < columns; z++) - { - $column = $('' + this.opts.invisibleSpace + ''); - - // set the focus to the first td - if (i === 0 && z === 0) $column.append('' + this.opts.invisibleSpace + ''); - - $($row).append($column); - } - - $table.append($row); - } - - $table_box.append($table); - var html = $table_box.html(); - - this.modalClose(); - this.selectionRestore(); - - var current = this.getBlock() || this.getCurrent(); - - if (current && current.tagName != 'BODY') $(current).after(html) - else this.insertHtmlAdvanced(html, false); - - this.selectionRestore(); - - var table = this.$editor.find('#table' + tableId); - this.buttonActiveObserver(); - - table.find('span#selection-marker-1').remove(); - table.removeAttr('id'); - - this.sync(); - }, - tableDeleteTable: function() - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - $table.remove(); - this.sync(); - }, - tableDeleteRow: function() - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - var $current_tr = $(this.getParent()).closest('tr'); - var $focus_tr = $current_tr.prev().length ? $current_tr.prev() : $current_tr.next(); - if ($focus_tr.length) - { - var $focus_td = $focus_tr.children('td' ).first(); - if ($focus_td.length) - { - $focus_td.prepend('' + this.opts.invisibleSpace + ''); - } - } - - $current_tr.remove(); - this.selectionRestore(); - this.sync(); - }, - tableDeleteColumn: function() - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - var $current_td = $(this.getParent()).closest('td'); - var index = $current_td.get(0).cellIndex; - - // Set the focus correctly - $table.find('tr').each($.proxy(function(i, elem) - { - var focusIndex = index - 1 < 0 ? index + 1 : index - 1; - if (i === 0) - { - $(elem).find('td').eq(focusIndex).prepend('' + this.opts.invisibleSpace + ''); - } - - $(elem).find('td').eq(index).remove(); - - }, this)); - - this.selectionRestore(); - this.sync(); - }, - tableAddHead: function() - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - if ($table.find('thead').size() !== 0) this.tableDeleteHead(); - else - { - var tr = $table.find('tr').first().clone(); - tr.find('td').html(this.opts.invisibleSpace); - $thead = $(''); - $thead.append(tr); - $table.prepend($thead); - - this.sync(); - } - }, - tableDeleteHead: function() - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - var $thead = $table.find('thead'); - - if ($thead.size() == 0) return false; - - this.bufferSet(); - - $thead.remove(); - this.sync(); - }, - tableAddRowAbove: function() - { - this.tableAddRow('before'); - }, - tableAddRowBelow: function() - { - this.tableAddRow('after'); - }, - tableAddColumnLeft: function() - { - this.tableAddColumn('before'); - }, - tableAddColumnRight: function() - { - this.tableAddColumn('after'); - }, - tableAddRow: function(type) - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - var $current_tr = $(this.getParent()).closest('tr'); - var new_tr = $current_tr.clone(); - new_tr.find('td').html(this.opts.invisibleSpace); - - if (type === 'after') $current_tr.after(new_tr); - else $current_tr.before(new_tr); - - this.sync(); - }, - tableAddColumn: function (type) - { - var $table = $(this.getParent()).closest('table'); - if (!this.isParentRedactor($table)) return false; - if ($table.size() == 0) return false; - - this.bufferSet(); - - var index = 0; - - var $current_tr = $(this.getParent()).closest('tr'); - var $current_td = $(this.getParent()).closest('td'); - - $current_tr.find('td').each($.proxy(function(i, elem) - { - if ($(elem)[0] === $current_td[0]) index = i; - - }, this)); - - $table.find('tr').each($.proxy(function(i, elem) - { - var $current = $(elem).find('td').eq(index); - - var td = $current.clone(); - td.html(this.opts.invisibleSpace); - - type === 'after' ? $current.after(td) : $current.before(td); - - }, this)); - - this.sync(); - }, - - // VIDEO - videoShow: function() - { - this.selectionSave(); - - this.modalInit(this.opts.curLang.video, this.opts.modal_video, 600, $.proxy(function() - { - $('#redactor_insert_video_btn').click($.proxy(this.videoInsert, this)); - - setTimeout(function() - { - $('#redactor_insert_video_area').focus(); - - }, 200); - - }, this)); - }, - videoInsert: function () - { - var data = $('#redactor_insert_video_area').val(); - data = this.cleanStripTags(data); - - this.selectionRestore(); - - var current = this.getBlock() || this.getCurrent(); - - if (current) $(current).after(data) - else this.insertHtmlAdvanced(data, false); - - this.sync(); - this.modalClose(); - }, - - // LINK - linkShow: function() - { - this.selectionSave(); - - var callback = $.proxy(function() - { - this.insert_link_node = false; - - var sel = this.getSelection(); - var url = '', text = '', target = ''; - - var elem = this.getParent(); - var par = $(elem).parent().get(0); - if (par && par.tagName === 'A') - { - elem = par; - } - - if (elem && elem.tagName === 'A') - { - url = elem.href; - text = $(elem).text(); - target = elem.target; - - this.insert_link_node = elem; - } - else text = sel.toString(); - - $('.redactor_link_text').val(text); - - var thref = self.location.href.replace(/\/$/i, ''); - var turl = url.replace(thref, ''); - - // remove host from href - if (this.opts.linkProtocol === false) - { - var re = new RegExp('^(http|ftp|https)://' + self.location.host, 'i'); - turl = turl.replace(re, ''); - } - - var tabs = $('#redactor_tabs').find('a'); - - if (this.opts.linkEmail === false) tabs.eq(1).remove(); - if (this.opts.linkAnchor === false) tabs.eq(2).remove(); - if (this.opts.linkEmail === false && this.opts.linkAnchor === false) - { - $('#redactor_tabs').remove(); - $('#redactor_link_url').val(turl); - } - else - { - if (url.search('mailto:') === 0) - { - this.modalSetTab.call(this, 2); - - $('#redactor_tab_selected').val(2); - $('#redactor_link_mailto').val(url.replace('mailto:', '')); - } - else if (turl.search(/^#/gi) === 0) - { - this.modalSetTab.call(this, 3); - - $('#redactor_tab_selected').val(3); - $('#redactor_link_anchor').val(turl.replace(/^#/gi, '' )); - } - else - { - $('#redactor_link_url').val(turl); - } - } - - if (target === '_blank') $('#redactor_link_blank').prop('checked', true); - - $('#redactor_insert_link_btn').click($.proxy(this.linkProcess, this)); - - setTimeout(function() - { - $('#redactor_link_url').focus(); - - }, 200); - - }, this); - - this.modalInit(this.opts.curLang.link, this.opts.modal_link, 460, callback); - - }, - linkProcess: function() - { - var tab_selected = $('#redactor_tab_selected').val(); - var link = '', text = '', target = '', targetBlank = ''; - - // url - if (tab_selected === '1') - { - link = $('#redactor_link_url').val(); - text = $('#redactor_link_url_text').val(); - - if ($('#redactor_link_blank').prop('checked')) - { - target = ' target="_blank"'; - targetBlank = '_blank'; - } - - // test url (add protocol) - var pattern = '((xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}'; - var re = new RegExp('^(http|ftp|https)://' + pattern, 'i'); - var re2 = new RegExp('^' + pattern, 'i'); - - if (link.search(re) == -1 && link.search(re2) == 0 && this.opts.linkProtocol) - { - link = this.opts.linkProtocol + link; - } - } - // mailto - else if (tab_selected === '2') - { - link = 'mailto:' + $('#redactor_link_mailto').val(); - text = $('#redactor_link_mailto_text').val(); - } - // anchor - else if (tab_selected === '3') - { - link = '#' + $('#redactor_link_anchor').val(); - text = $('#redactor_link_anchor_text').val(); - } - - text = text.replace(/<|>/g, ''); - this.linkInsert('' + text + '', $.trim(text), link, targetBlank); - - }, - linkInsert: function (a, text, link, target) - { - this.selectionRestore(); - - if (text !== '') - { - if (this.insert_link_node) - { - this.bufferSet(); - - $(this.insert_link_node).text(text).attr('href', link); - - if (target !== '') $(this.insert_link_node).attr('target', target); - else $(this.insert_link_node).removeAttr('target'); - - this.sync(); - } - else - { - var $a = $(a).addClass('redactor-added-link'); - this.exec('inserthtml', this.outerHtml($a), false); - this.$editor.find('a.redactor-added-link').removeAttr('style').removeClass('redactor-added-link').each(function() - { - if (this.className == '') $(this).removeAttr('class'); - }); - this.sync(); - } - } - - // link tooltip - setTimeout($.proxy(function() - { - - if (this.opts.observeLinks) this.observeLinks(); - - }, this), 5); - - this.modalClose(); - }, - - // FILE - fileShow: function () - { - - this.selectionSave(); - - var callback = $.proxy(function() - { - var sel = this.getSelection(); - - var text = ''; - if (this.oldIE()) text = sel.text; - else text = sel.toString(); - - $('#redactor_filename').val(text); - - // dragupload - if (!this.isMobile()) - { - this.draguploadInit('#redactor_file', { - url: this.opts.fileUpload, - uploadFields: this.opts.uploadFields, - success: $.proxy(this.fileCallback, this), - error: $.proxy( function(obj, json) - { - this.callback('fileUploadError', json); - - }, this), - uploadParam: this.opts.fileUploadParam - }); - } - - this.uploadInit('redactor_file', { - auto: true, - url: this.opts.fileUpload, - success: $.proxy(this.fileCallback, this), - error: $.proxy(function(obj, json) - { - this.callback('fileUploadError', json); - - }, this) - }); - - }, this); - - this.modalInit(this.opts.curLang.file, this.opts.modal_file, 500, callback); - }, - fileCallback: function(json) - { - - this.selectionRestore(); - - if (json !== false) - { - - var text = $('#redactor_filename').val(); - if (text === '') text = json.filename; - - var link = '' + text + ''; - - // chrome fix - if (this.browser('webkit') && !!this.window.chrome) - { - link = link + ' '; - } - - this.execCommand('inserthtml', link, false); - - var linkmarker = $(this.$editor.find('a#filelink-marker')); - if (linkmarker.size() != 0) linkmarker.removeAttr('id'); - else linkmarker = false; - - this.sync(); - - // file upload callback - this.callback('fileUpload', linkmarker, json); - } - - this.modalClose(); - }, - - // IMAGE - imageShow: function() - { - - this.selectionSave(); - - var callback = $.proxy(function() - { - // json - if (this.opts.imageGetJson) - { - $.getJSON(this.opts.imageGetJson, $.proxy(function(data) - { - var folders = {}, count = 0; - - // folders - $.each(data, $.proxy(function(key, val) - { - if (typeof val.folder !== 'undefined') - { - count++; - folders[val.folder] = count; - } - - }, this)); - - var folderclass = false; - $.each(data, $.proxy(function(key, val) - { - // title - var thumbtitle = ''; - if (typeof val.title !== 'undefined') thumbtitle = val.title; - - var folderkey = 0; - if (!$.isEmptyObject(folders) && typeof val.folder !== 'undefined') - { - folderkey = folders[val.folder]; - if (folderclass === false) folderclass = '.redactorfolder' + folderkey; - } - - var img = $(''); - $('#redactor_image_box').append(img); - $(img).click($.proxy(this.imageThumbClick, this)); - - }, this)); - - // folders - if (!$.isEmptyObject(folders)) - { - $('.redactorfolder').hide(); - $(folderclass).show(); - - var onchangeFunc = function(e) - { - $('.redactorfolder').hide(); - $('.redactorfolder' + $(e.target).val()).show(); - }; - - var select = $('' - + '
      ' - + '' - + '
      ' - + '' - + '', - - modal_image_edit: String() - + '
      ' - + '' - + '' - + '' - + '' - + '' - + '' - + '' - + '
      ' - + '
      ' - + '   ' - + '' - + '' - + '
      ', - - modal_image: String() - + '
      ' - + '' - + '' - + '
      ' - + '
      ' - + '' - + '
      ' - + '' - + '
      ' - + '' - + '
      ' - + '
      ' - + '' - + '' - + '
      ', - - modal_link: String() - + '
      ' - + '
      ' - + '
      ' - + 'URL' - + 'Email' - + '' + this.opts.curLang.anchor + '' - + '
      ' - + '' - + '
      ' - + '' - + '' - + '' - + '' - + '' - + '
      ' - + '' - + '' - + '
      ' - + '
      ' - + '
      ' - + '' - + '' - + '
      ', - - modal_table: String() - + '
      ' - + '' - + '' - + '' - + '' - + '
      ' - + '
      ' - + '' - + '' - + '
      ', - - modal_video: String() - + '
      ' - + '
      ' - + '' - + '' - + '
      ' - + '
      ' - + '
      ' - + '' - + '' - + '
      ' - - }); - }, - modalInit: function(title, content, width, callback) - { - var $redactorModalOverlay = $('#redactor_modal_overlay'); - - // modal overlay - if (!$redactorModalOverlay.length) - { - this.$overlay = $redactorModalOverlay = $(''); - $('body').prepend(this.$overlay); - } - - if (this.opts.modalOverlay) - { - $redactorModalOverlay.show().on('click', $.proxy(this.modalClose, this)); - } - - var $redactorModal = $('#redactor_modal'); - - if (!$redactorModal.length) - { - this.$modal = $redactorModal = $(''); - $('body').append(this.$modal); - } - - $('#redactor_modal_close').on('click', $.proxy(this.modalClose, this)); - - this.hdlModalClose = $.proxy(function(e) - { - if (e.keyCode === this.keyCode.ESC) - { - this.modalClose(); - return false; - } - - }, this); - - $(document).keyup(this.hdlModalClose); - this.$editor.keyup(this.hdlModalClose); - - // set content - this.modalcontent = false; - if (content.indexOf('#') == 0) - { - this.modalcontent = $(content); - $('#redactor_modal_inner').empty().append(this.modalcontent.html()); - this.modalcontent.html(''); - - } - else - { - $('#redactor_modal_inner').empty().append(content); - } - - $redactorModal.find('#redactor_modal_header').html(title); - - // draggable - if (typeof $.fn.draggable !== 'undefined') - { - $redactorModal.draggable({ handle: '#redactor_modal_header' }); - $redactorModal.find('#redactor_modal_header').css('cursor', 'move'); - } - - var $redactor_tabs = $('#redactor_tabs'); - - // tabs - if ($redactor_tabs.length ) - { - var that = this; - $redactor_tabs.find('a').each(function(i, s) - { - i++; - $(s).on('click', function(e) - { - e.preventDefault(); - - $redactor_tabs.find('a').removeClass('redactor_tabs_act'); - $(this).addClass('redactor_tabs_act'); - $('.redactor_tab').hide(); - $('#redactor_tab' + i ).show(); - $('#redactor_tab_selected').val(i); - - if (that.isMobile() === false) - { - var height = $redactorModal.outerHeight(); - $redactorModal.css('margin-top', '-' + (height + 10) / 2 + 'px'); - } - }); - }); - } - - $redactorModal.find('.redactor_btn_modal_close').on('click', $.proxy(this.modalClose, this)); - - // save scroll - if (this.opts.autoresize === true) - { - this.saveModalScroll = this.document.body.scrollTop; - } - else - { - this.saveModalScroll = this.$editor.scrollTop(); - } - - if (this.isMobile() === false) - { - $redactorModal.css({ - position: 'fixed', - top: '-2000px', - left: '50%', - width: width + 'px', - marginLeft: '-' + (width + 60) / 2 + 'px' - }).show(); - - this.modalSaveBodyOveflow = $(document.body).css('overflow'); - $(document.body).css('overflow', 'hidden'); - - } - else - { - $redactorModal.css({ - position: 'fixed', - width: '100%', - height: '100%', - top: '0', - left: '0', - margin: '0', - minHeight: '300px' - }).show(); - } - - // callback - if (typeof callback === 'function') callback(); - - if (this.isMobile() === false) - { - setTimeout(function() - { - var height = $redactorModal.outerHeight(); - $redactorModal.css({ - top: '50%', - height: 'auto', - minHeight: 'auto', - marginTop: '-' + (height + 10) / 2 + 'px' - }); - }, 10); - } - - }, - modalClose: function() - { - $('#redactor_modal_close').off('click', this.modalClose ); - $('#redactor_modal').fadeOut('fast', $.proxy(function() - { - var redactorModalInner = $('#redactor_modal_inner'); - - if (this.modalcontent !== false) - { - this.modalcontent.html(redactorModalInner.html()); - this.modalcontent = false; - } - - redactorModalInner.html(''); - - if (this.opts.modalOverlay) - { - $('#redactor_modal_overlay').hide().off('click', this.modalClose); - } - - $(document).unbind('keyup', this.hdlModalClose); - this.$editor.unbind('keyup', this.hdlModalClose); - - this.selectionRestore(); - - // restore scroll - if (this.opts.autoresize && this.saveModalScroll) - { - $(this.document.body).scrollTop(this.saveModalScroll); - } - else if (this.opts.autoresize === false && this.saveModalScroll) - { - this.$editor.scrollTop(this.saveModalScroll); - } - - }, this)); - - - if (this.isMobile() === false) - { - $(document.body).css('overflow', this.modalSaveBodyOveflow ? this.modalSaveBodyOveflow : 'visible'); - } - - return false; - }, - modalSetTab: function(num) - { - $('.redactor_tab').hide(); - $('#redactor_tabs').find('a').removeClass('redactor_tabs_act').eq(num - 1).addClass('redactor_tabs_act'); - $('#redactor_tab' + num).show(); - }, - - // S3 - s3handleFileSelect: function(e) - { - var files = e.target.files; - - for (var i = 0, f; f = files[i]; i++) - { - this.s3uploadFile(f); - } - }, - s3uploadFile: function(file) - { - this.s3executeOnSignedUrl(file, $.proxy(function(signedURL) - { - this.s3uploadToS3(file, signedURL); - }, this)); - }, - s3executeOnSignedUrl: function(file, callback) - { - var xhr = new XMLHttpRequest(); - - var mark = '?'; - if (this.opts.s3.search(/\?/) != '-1') mark = '&'; - - xhr.open('GET', this.opts.s3 + mark + 'name=' + file.name + '&type=' + file.type, true); - - // Hack to pass bytes through unprocessed. - if (xhr.overrideMimeType) xhr.overrideMimeType('text/plain; charset=x-user-defined'); - - xhr.onreadystatechange = function(e) - { - if (this.readyState == 4 && this.status == 200) - { - $('#redactor-progress').fadeIn(); - callback(decodeURIComponent(this.responseText)); - } - else if(this.readyState == 4 && this.status != 200) - { - //setProgress(0, 'Could not contact signing script. Status = ' + this.status); - } - }; - - xhr.send(); - }, - s3createCORSRequest: function(method, url) - { - var xhr = new XMLHttpRequest(); - if ("withCredentials" in xhr) - { - xhr.open(method, url, true); - } - else if (typeof XDomainRequest != "undefined") - { - xhr = new XDomainRequest(); - xhr.open(method, url); - } - else - { - xhr = null; - } - - return xhr; - }, - s3uploadToS3: function(file, url) - { - var xhr = this.s3createCORSRequest('PUT', url); - if (!xhr) - { - //setProgress(0, 'CORS not supported'); - } - else - { - xhr.onload = $.proxy(function() - { - if (xhr.status == 200) - { - //setProgress(100, 'Upload completed.'); - - $('#redactor-progress, #redactor-progress-drag').hide(); - - var s3image = url.split('?'); - - if (!s3image[0]) - { - // url parsing is fail - return false; - } - - this.selectionRestore(); - - var html = ''; - html = ''; - if (this.opts.paragraphy) html = '

      ' + html + '

      '; - - this.execCommand('inserthtml', html, false); - - var image = $(this.$editor.find('img#image-marker')); - - if (image.length) image.removeAttr('id'); - else image = false; - - this.sync(); - - // upload image callback - this.callback('imageUpload', image, false); - - this.modalClose(); - this.observeImages(); - - } - else - { - //setProgress(0, 'Upload error: ' + xhr.status); - } - }, this); - - xhr.onerror = function() - { - //setProgress(0, 'XHR error.'); - }; - - xhr.upload.onprogress = function(e) - { - /* - if (e.lengthComputable) - { - var percentLoaded = Math.round((e.loaded / e.total) * 100); - setProgress(percentLoaded, percentLoaded == 100 ? 'Finalizing.' : 'Uploading.'); - } - */ - }; - - xhr.setRequestHeader('Content-Type', file.type); - xhr.setRequestHeader('x-amz-acl', 'public-read'); - - xhr.send(file); - } - }, - - // UPLOAD - uploadInit: function(el, options) - { - this.uploadOptions = { - url: false, - success: false, - error: false, - start: false, - trigger: false, - auto: false, - input: false - }; - - $.extend(this.uploadOptions, options); - - var $el = $('#' + el); - - // Test input or form - if ($el.length && $el[0].tagName === 'INPUT') - { - this.uploadOptions.input = $el; - this.el = $($el[0].form); - } - else this.el = $el; - - this.element_action = this.el.attr('action'); - - // Auto or trigger - if (this.uploadOptions.auto) - { - $(this.uploadOptions.input).change($.proxy(function(e) - { - this.el.submit(function(e) - { - return false; - }); - - this.uploadSubmit(e); - - }, this)); - - } - else if (this.uploadOptions.trigger) - { - $('#' + this.uploadOptions.trigger).click($.proxy(this.uploadSubmit, this)); - } - }, - uploadSubmit: function(e) - { - $('#redactor-progress').fadeIn(); - this.uploadForm(this.element, this.uploadFrame()); - }, - uploadFrame: function() - { - this.id = 'f' + Math.floor(Math.random() * 99999); - - var d = this.document.createElement('div'); - var iframe = ''; - - d.innerHTML = iframe; - $(d).appendTo("body"); - - // Start - if (this.uploadOptions.start) this.uploadOptions.start(); - - $( '#' + this.id ).load($.proxy(this.uploadLoaded, this)); - - return this.id; - }, - uploadForm: function(f, name) - { - if (this.uploadOptions.input) - { - var formId = 'redactorUploadForm' + this.id, - fileId = 'redactorUploadFile' + this.id; - - this.form = $('
      '); - - // append hidden fields - if (this.opts.uploadFields !== false && typeof this.opts.uploadFields === 'object') - { - $.each(this.opts.uploadFields, $.proxy(function(k, v) - { - if (v != null && v.toString().indexOf('#') === 0) v = $(v).val(); - - var hidden = $('', { - 'type': "hidden", - 'name': k, - 'value': v - }); - - $(this.form).append(hidden); - - }, this)); - } - - var oldElement = this.uploadOptions.input; - var newElement = $(oldElement).clone(); - - $(oldElement).attr('id', fileId).before(newElement).appendTo(this.form); - - $(this.form).css('position', 'absolute') - .css('top', '-2000px') - .css('left', '-2000px') - .appendTo('body'); - - this.form.submit(); - - } - else - { - f.attr('target', name) - .attr('method', 'POST') - .attr('enctype', 'multipart/form-data') - .attr('action', this.uploadOptions.url); - - this.element.submit(); - } - }, - uploadLoaded: function() - { - var i = $( '#' + this.id)[0], d; - - if (i.contentDocument) d = i.contentDocument; - else if (i.contentWindow) d = i.contentWindow.document; - else d = window.frames[this.id].document; - - // Success - if (this.uploadOptions.success) - { - $('#redactor-progress').hide(); - - if (typeof d !== 'undefined') - { - // Remove bizarre
       tag wrappers around our json data:
      -          var rawString = d.body.innerHTML;
      -          var jsonString = rawString.match(/\{(.|\n)*\}/)[0];
      -
      -          jsonString = jsonString.replace(/^\[/, '');
      -          jsonString = jsonString.replace(/\]$/, '');
      -
      -          var json = $.parseJSON(jsonString);
      -
      -          if (typeof json.error == 'undefined') this.uploadOptions.success(json);
      -          else
      -          {
      -            this.uploadOptions.error(this, json);
      -            this.modalClose();
      -          }
      -        }
      -        else
      -        {
      -          this.modalClose();
      -          alert('Upload failed!');
      -        }
      -      }
      -
      -      this.el.attr('action', this.element_action);
      -      this.el.attr('target', '');
      -    },
      -
      -    // DRAGUPLOAD
      -    draguploadInit: function (el, options)
      -    {
      -      this.draguploadOptions = $.extend({
      -        url: false,
      -        success: false,
      -        error: false,
      -        preview: false,
      -        uploadFields: false,
      -        text: this.opts.curLang.drop_file_here,
      -        atext: this.opts.curLang.or_choose,
      -        uploadParam: false
      -      }, options);
      -
      -      if (window.FormData === undefined) return false;
      -
      -      this.droparea = $('
      '); - this.dropareabox = $('
      ' + this.draguploadOptions.text + '
      '); - this.dropalternative = $('
      ' + this.draguploadOptions.atext + '
      '); - - this.droparea.append(this.dropareabox); - - $(el).before(this.droparea); - $(el).before(this.dropalternative); - - // drag over - this.dropareabox.on('dragover', $.proxy(function() - { - return this.draguploadOndrag(); - - }, this)); - - // drag leave - this.dropareabox.on('dragleave', $.proxy(function() - { - return this.draguploadOndragleave(); - - }, this)); - - // drop - this.dropareabox.get(0).ondrop = $.proxy(function(e) - { - e.preventDefault(); - - this.dropareabox.removeClass('hover').addClass('drop'); - - this.dragUploadAjax(this.draguploadOptions.url, e.dataTransfer.files[0], false, false, false, this.draguploadOptions.uploadParam); - - }, this ); - }, - dragUploadAjax: function(url, file, directupload, progress, e, uploadParam) - { - - - if (!directupload) - { - var xhr = $.ajaxSettings.xhr(); - if (xhr.upload) - { - xhr.upload.addEventListener('progress', $.proxy(this.uploadProgress, this), false); - } - - $.ajaxSetup({ - xhr: function () { return xhr; } - }); - } - - var fd = new FormData(); - - // append file data - if (uploadParam !== false) - { - fd.append(uploadParam, file); - } - else - { - fd.append('file', file); - } - - // append hidden fields - if (this.opts.uploadFields !== false && typeof this.opts.uploadFields === 'object') - { - $.each(this.opts.uploadFields, $.proxy(function(k, v) - { - if (v != null && v.toString().indexOf('#') === 0) v = $(v).val(); - fd.append(k, v); - - }, this)); - } - - $.ajax({ - url: url, - dataType: 'html', - data: fd, - cache: false, - contentType: false, - processData: false, - type: 'POST', - success: $.proxy(function(data) - { - data = data.replace(/^\[/, ''); - data = data.replace(/\]$/, ''); - - var json = (typeof data === 'string' ? $.parseJSON(data) : data); - - if (directupload) - { - progress.fadeOut('slow', function() - { - $(this).remove(); - }); - - var $img = $(''); - $img.attr('src', json.filelink).attr('id', 'drag-image-marker'); - - this.insertNodeToCaretPositionFromPoint(e, $img[0]); - - var image = $(this.$editor.find('img#drag-image-marker')); - if (image.length) image.removeAttr('id'); - else image = false; - - this.sync(); - this.observeImages(); - - // upload callback - if (image) this.callback('imageUpload', image, json); - - // error callback - if (typeof json.error !== 'undefined') this.callback('imageUploadError', json); - } - else - { - if (typeof json.error == 'undefined') - { - this.draguploadOptions.success(json); - } - else - { - this.draguploadOptions.error(this, json); - this.draguploadOptions.success(false); - } - } - - }, this) - }); - }, - draguploadOndrag: function() - { - this.dropareabox.addClass('hover'); - return false; - }, - draguploadOndragleave: function() - { - this.dropareabox.removeClass('hover'); - return false; - }, - uploadProgress: function(e, text) - { - var percent = e.loaded ? parseInt(e.loaded / e.total * 100, 10) : e; - this.dropareabox.text('Loading ' + percent + '% ' + (text || '')); - }, - - // UTILS - isMobile: function() - { - return /(iPhone|iPod|BlackBerry|Android)/.test(navigator.userAgent); - }, - normalize: function(str) - { - if (typeof(str) === 'undefined') return 0; - return parseInt(str.replace('px',''), 10); - }, - outerHtml: function(el) - { - return $('
      ').append($(el).eq(0).clone()).html(); - }, - isString: function(obj) - { - return Object.prototype.toString.call(obj) == '[object String]'; - }, - isEmpty: function(html) - { - html = html.replace(/​|
      || /gi, ''); - html = html.replace(/\s/g, ''); - html = html.replace(/^

      [^\W\w\D\d]*?<\/p>$/i, ''); - - - return html == ''; - }, - isIe11: function() - { - return !!navigator.userAgent.match(/Trident\/7\./); - }, - browser: function(browser) - { - var ua = navigator.userAgent.toLowerCase(); - var match = /(opr)[\/]([\w.]+)/.exec( ua ) || - /(chrome)[ \/]([\w.]+)/.exec( ua ) || - /(webkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec( ua ) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || - /(msie) ([\w.]+)/.exec( ua ) || - ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || - []; - - if (browser == 'version') return match[2]; - if (browser == 'webkit') return (match[1] == 'chrome' || match[1] == 'webkit'); - if (match[1] == 'rv') return browser == 'msie'; - if (match[1] == 'opr') return browser == 'webkit'; - - return browser == match[1]; - - }, - oldIE: function() - { - if (this.browser('msie') && parseInt(this.browser('version'), 10) < 9) return true; - return false; - }, - getFragmentHtml: function (fragment) - { - var cloned = fragment.cloneNode(true); - var div = this.document.createElement('div'); - - div.appendChild(cloned); - return div.innerHTML; - }, - extractContent: function() - { - var node = this.$editor[0]; - var frag = this.document.createDocumentFragment(); - var child; - - while ((child = node.firstChild)) - { - frag.appendChild(child); - } - - return frag; - }, - isParentRedactor: function(el) - { - if (!el) return false; - if (this.opts.iframe) return el; - - if ($(el).parents('div.redactor_editor').length == 0 || $(el).hasClass('redactor_editor')) return false; - else return el; - }, - currentOrParentIs: function(tagName) - { - var parent = this.getParent(), current = this.getCurrent(); - return parent && parent.tagName === tagName ? parent : current && current.tagName === tagName ? current : false; - }, - isEndOfElement: function() - { - var current = this.getBlock(); - var offset = this.getCaretOffset(current); - - var text = $.trim($(current).text()).replace(/\n\r\n/g, ''); - - var len = text.length; - - if (offset == len) return true; - else return false; - }, - isFocused: function() - { - var el, sel = this.getSelection(); - - if (sel && sel.rangeCount && sel.rangeCount > 0) el = sel.getRangeAt(0).startContainer; - if (!el) return false; - if (this.opts.iframe) - { - if (this.getCaretOffsetRange().equals()) return !this.$editor.is(el); - else return true; - } - - return $(el).closest('div.redactor_editor').length != 0; - }, - removeEmptyAttr: function (el, attr) - { - if ($(el).attr(attr) == '') $(el).removeAttr(attr); - }, - removeFromArrayByValue: function(array, value) - { - var index = null; - - while ((index = array.indexOf(value)) !== -1) - { - array.splice(index, 1); - } - - return array; - } - - }; - - // constructor - Redactor.prototype.init.prototype = Redactor.prototype; - - // LINKIFY - $.Redactor.fn.formatLinkify = function(protocol, convertLinks, convertImageLinks, convertVideoLinks, linkSize) - { - var url1 = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g, - url2 = /(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g, - urlImage = /(https?:\/\/.*\.(?:png|jpg|jpeg|gif))/gi, - urlYoutube = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig, - urlVimeo = /https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/; - - var childNodes = (this.$editor ? this.$editor.get(0) : this).childNodes, i = childNodes.length; - while (i--) - { - var n = childNodes[i]; - if (n.nodeType === 3) - { - var html = n.nodeValue; - - // youtube & vimeo - if (convertVideoLinks && html) - { - var iframeStart = ''; - - if (html.match(urlYoutube)) - { - html = html.replace(urlYoutube, iframeStart + '//www.youtube.com/embed/$1' + iframeEnd); - $(n).after(html).remove(); - } - else if (html.match(urlVimeo)) - { - html = html.replace(urlVimeo, iframeStart + '//player.vimeo.com/video/$2' + iframeEnd); - $(n).after(html).remove(); - } - } - - // image - if (convertImageLinks && html && html.match(urlImage)) - { - html = html.replace(urlImage, ''); - - $(n).after(html).remove(); - } - - // link - if (convertLinks && html && (html.match(url1) || html.match(url2))) - { - var href = (html.match(url1) || html.match(url2)); - href = href[0]; - if (href.length > linkSize) href = href.substring(0, linkSize) + '...'; - - html = html.replace(/&/g, '&') - .replace(//g, '>') - .replace(url1, '$1' + $.trim(href) + '$3') - .replace(url2, '$1' + $.trim(href) + '$5'); - - - $(n).after(html).remove(); - } - } - else if (n.nodeType === 1 && !/^(a|button|textarea)$/i.test(n.tagName)) - { - $.Redactor.fn.formatLinkify.call(n, protocol, convertLinks, convertImageLinks, convertVideoLinks, linkSize); - } - } - }; - -})(jQuery); \ No newline at end of file