From a72719dc24dc75c5a5e26f657ae53501a9a06fe2 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 16 Jun 2016 23:18:44 +0100 Subject: [PATCH] Move hand-made js to resources --- bower.json | 2 +- gulpfile.js | 108 +++-- package.json | 46 +- public/assets/bower/Autolinker.min.js | 10 + public/assets/bower/alertify.css | 1 + public/assets/bower/alertify.js | 1 + public/assets/{js/libs => bower}/fetch.js | 18 +- .../assets/{js/libs => bower}/marked.min.js | 0 public/assets/bower/sanitize.css | 352 +++++++++++++++ .../assets/{js/libs => bower}/store2.min.js | 0 public/assets/css/alertify.css | 1 - public/assets/css/images/icons-000000@2x.png | Bin 1548 -> 0 bytes public/assets/css/normalize.css | 424 ------------------ public/assets/css/sanitize.min.css | 2 - public/assets/js/libs/Autolinker.min.js | 10 - public/assets/js/libs/alertify.js | 1 - public/assets/{css => prism}/prism.css | 0 public/assets/{js/libs => prism}/prism.js | 0 .../assets/bower/Autolinker.min-2cb3468034.js | 10 + .../bower/Autolinker.min-2cb3468034.js.br | Bin 0 -> 7317 bytes .../bower/Autolinker.min-2cb3468034.js.gz | Bin 0 -> 8188 bytes .../assets/bower/alertify-1b3c6aa174.css | 1 + .../assets/bower/alertify-1b3c6aa174.css.br | Bin 0 -> 836 bytes .../assets/bower/alertify-1b3c6aa174.css.gz | Bin 0 -> 1017 bytes .../build/assets/bower/alertify-84061c87f5.js | 1 + .../assets/bower/alertify-84061c87f5.js.br | Bin 0 -> 2777 bytes .../assets/bower/alertify-84061c87f5.js.gz | Bin 0 -> 3152 bytes .../fetch-d8a2646ccc.js} | 18 +- .../build/assets/bower/fetch-d8a2646ccc.js.br | Bin 0 -> 2382 bytes .../build/assets/bower/fetch-d8a2646ccc.js.gz | Bin 0 -> 2644 bytes .../libs => bower}/marked.min-c2a88705e2.js | 0 .../marked.min-c2a88705e2.js.br | Bin .../assets/bower/marked.min-c2a88705e2.js.gz | Bin 0 -> 5514 bytes .../assets/bower/sanitize-85919f917a.css | 352 +++++++++++++++ .../assets/bower/sanitize-85919f917a.css.br | Bin 0 -> 1535 bytes .../assets/bower/sanitize-85919f917a.css.gz | Bin 0 -> 1853 bytes .../libs => bower}/store2.min-c4daa8f871.js | 0 .../store2.min-c4daa8f871.js.br | Bin .../assets/bower/store2.min-c4daa8f871.js.gz | Bin 0 -> 1426 bytes .../build/assets/css/alertify-d84546f82d.css | 1 - .../assets/css/alertify-d84546f82d.css.br | Bin 857 -> 0 bytes .../assets/css/alertify-d84546f82d.css.gz | Bin 1044 -> 0 bytes .../build/assets/css/global-f45e4f1fb0.css.gz | Bin 1236 -> 1233 bytes .../build/assets/css/prism-5c98941a94.css.gz | Bin 1273 -> 0 bytes .../assets/css/projects-d945298e4f.css.gz | Bin 120 -> 119 bytes .../assets/css/sanitize.min-535bccd783.css | 2 - .../assets/css/sanitize.min-535bccd783.css.br | Bin 790 -> 0 bytes .../assets/css/sanitize.min-535bccd783.css.gz | Bin 978 -> 0 bytes .../assets/js/form-save-4d4f6e1cb8.js.gz | Bin 730 -> 729 bytes .../js/libs/Autolinker.min-b46556773a.js | 10 - .../js/libs/Autolinker.min-b46556773a.js.br | Bin 7715 -> 0 bytes .../js/libs/Autolinker.min-b46556773a.js.gz | Bin 8470 -> 0 bytes .../assets/js/libs/alertify-269e23cb46.js | 1 - .../assets/js/libs/alertify-269e23cb46.js.br | Bin 2762 -> 0 bytes .../assets/js/libs/alertify-269e23cb46.js.gz | Bin 3143 -> 0 bytes .../assets/js/libs/fetch-5e9040330a.js.br | Bin 2381 -> 0 bytes .../assets/js/libs/fetch-5e9040330a.js.gz | Bin 2643 -> 0 bytes .../js/libs/marked.min-c2a88705e2.js.gz | Bin 5513 -> 0 bytes .../assets/js/libs/prism-f6e997bc6d.js.gz | Bin 6940 -> 0 bytes .../js/libs/store2.min-c4daa8f871.js.gz | Bin 1427 -> 0 bytes public/build/assets/js/links-c394f9c920.js.gz | Bin 452 -> 452 bytes public/build/assets/js/maps-a6a01a253b.js.gz | Bin 414 -> 413 bytes .../build/assets/js/newnote-36ff29cdef.js.gz | Bin 2615 -> 2615 bytes .../build/assets/js/newplace-89a1be080e.js.gz | Bin 606 -> 605 bytes .../{css => prism}/prism-5c98941a94.css | 0 .../{css => prism}/prism-5c98941a94.css.br | Bin .../assets/prism/prism-5c98941a94.css.gz | Bin 0 -> 1274 bytes .../{js/libs => prism}/prism-f6e997bc6d.js | 0 .../{js/libs => prism}/prism-f6e997bc6d.js.br | Bin .../build/assets/prism/prism-f6e997bc6d.js.gz | Bin 0 -> 6938 bytes public/build/rev-manifest.json | 20 +- resources/assets/js/form-save.js | 69 +++ resources/assets/js/links.js | 26 ++ resources/assets/js/maps.js | 16 + resources/assets/js/newnote.js | 281 ++++++++++++ resources/assets/js/newplace.js | 44 ++ 76 files changed, 1280 insertions(+), 548 deletions(-) create mode 100644 public/assets/bower/Autolinker.min.js create mode 100644 public/assets/bower/alertify.css create mode 100644 public/assets/bower/alertify.js rename public/assets/{js/libs => bower}/fetch.js (97%) rename public/assets/{js/libs => bower}/marked.min.js (100%) create mode 100644 public/assets/bower/sanitize.css rename public/assets/{js/libs => bower}/store2.min.js (100%) delete mode 100644 public/assets/css/alertify.css delete mode 100644 public/assets/css/images/icons-000000@2x.png delete mode 100644 public/assets/css/normalize.css delete mode 100644 public/assets/css/sanitize.min.css delete mode 100644 public/assets/js/libs/Autolinker.min.js delete mode 100644 public/assets/js/libs/alertify.js rename public/assets/{css => prism}/prism.css (100%) rename public/assets/{js/libs => prism}/prism.js (100%) create mode 100644 public/build/assets/bower/Autolinker.min-2cb3468034.js create mode 100644 public/build/assets/bower/Autolinker.min-2cb3468034.js.br create mode 100644 public/build/assets/bower/Autolinker.min-2cb3468034.js.gz create mode 100644 public/build/assets/bower/alertify-1b3c6aa174.css create mode 100644 public/build/assets/bower/alertify-1b3c6aa174.css.br create mode 100644 public/build/assets/bower/alertify-1b3c6aa174.css.gz create mode 100644 public/build/assets/bower/alertify-84061c87f5.js create mode 100644 public/build/assets/bower/alertify-84061c87f5.js.br create mode 100644 public/build/assets/bower/alertify-84061c87f5.js.gz rename public/build/assets/{js/libs/fetch-5e9040330a.js => bower/fetch-d8a2646ccc.js} (97%) create mode 100644 public/build/assets/bower/fetch-d8a2646ccc.js.br create mode 100644 public/build/assets/bower/fetch-d8a2646ccc.js.gz rename public/build/assets/{js/libs => bower}/marked.min-c2a88705e2.js (100%) rename public/build/assets/{js/libs => bower}/marked.min-c2a88705e2.js.br (100%) create mode 100644 public/build/assets/bower/marked.min-c2a88705e2.js.gz create mode 100644 public/build/assets/bower/sanitize-85919f917a.css create mode 100644 public/build/assets/bower/sanitize-85919f917a.css.br create mode 100644 public/build/assets/bower/sanitize-85919f917a.css.gz rename public/build/assets/{js/libs => bower}/store2.min-c4daa8f871.js (100%) rename public/build/assets/{js/libs => bower}/store2.min-c4daa8f871.js.br (100%) create mode 100644 public/build/assets/bower/store2.min-c4daa8f871.js.gz delete mode 100644 public/build/assets/css/alertify-d84546f82d.css delete mode 100644 public/build/assets/css/alertify-d84546f82d.css.br delete mode 100644 public/build/assets/css/alertify-d84546f82d.css.gz delete mode 100644 public/build/assets/css/prism-5c98941a94.css.gz delete mode 100644 public/build/assets/css/sanitize.min-535bccd783.css delete mode 100644 public/build/assets/css/sanitize.min-535bccd783.css.br delete mode 100644 public/build/assets/css/sanitize.min-535bccd783.css.gz delete mode 100644 public/build/assets/js/libs/Autolinker.min-b46556773a.js delete mode 100644 public/build/assets/js/libs/Autolinker.min-b46556773a.js.br delete mode 100644 public/build/assets/js/libs/Autolinker.min-b46556773a.js.gz delete mode 100644 public/build/assets/js/libs/alertify-269e23cb46.js delete mode 100644 public/build/assets/js/libs/alertify-269e23cb46.js.br delete mode 100644 public/build/assets/js/libs/alertify-269e23cb46.js.gz delete mode 100644 public/build/assets/js/libs/fetch-5e9040330a.js.br delete mode 100644 public/build/assets/js/libs/fetch-5e9040330a.js.gz delete mode 100644 public/build/assets/js/libs/marked.min-c2a88705e2.js.gz delete mode 100644 public/build/assets/js/libs/prism-f6e997bc6d.js.gz delete mode 100644 public/build/assets/js/libs/store2.min-c4daa8f871.js.gz rename public/build/assets/{css => prism}/prism-5c98941a94.css (100%) rename public/build/assets/{css => prism}/prism-5c98941a94.css.br (100%) create mode 100644 public/build/assets/prism/prism-5c98941a94.css.gz rename public/build/assets/{js/libs => prism}/prism-f6e997bc6d.js (100%) rename public/build/assets/{js/libs => prism}/prism-f6e997bc6d.js.br (100%) create mode 100644 public/build/assets/prism/prism-f6e997bc6d.js.gz create mode 100644 resources/assets/js/form-save.js create mode 100644 resources/assets/js/links.js create mode 100644 resources/assets/js/maps.js create mode 100644 resources/assets/js/newnote.js create mode 100644 resources/assets/js/newplace.js diff --git a/bower.json b/bower.json index 17920bd2..701e6ad2 100644 --- a/bower.json +++ b/bower.json @@ -6,7 +6,7 @@ "Jonny Barnes " ], "license": "CC0-1.0", - "homepage": "https://github.com/jonnybarnes/jbl5", + "homepage": "https://github.com/jonnybarnes/jonnybarnes.uk", "moduleType": [], "ignore": [ "**/.*", diff --git a/gulpfile.js b/gulpfile.js index eb43841e..f6077a1c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -16,62 +16,31 @@ var elixir = require('laravel-elixir'); elixir(function(mix) { mix.sass('global.scss', 'public/assets/css'); + mix.copy('resources/assets/js', 'public/assets/js'); mix.version([ + //hand-made css 'assets/css/global.css', 'assets/css/projects.css', - 'assets/css/alertify.css', - 'assets/css/sanitize.min.css', - 'assets/css/prism.css', - 'assets/js/libs/fetch.js', - 'assets/js/libs/alertify.js', - 'assets/js/libs/store2.min.js', - 'assets/js/libs/Autolinker.min.js', - 'assets/js/libs/marked.min.js', - 'assets/js/libs/prism.js', + //hand-made js 'assets/js/form-save.js', 'assets/js/links.js', 'assets/js/maps.js', 'assets/js/newplace.js', 'assets/js/newnote.js', + //bower components + 'assets/bower/alertify.css', + 'assets/bower/sanitize.css', + 'assets/bower/fetch.js', + 'assets/bower/alertify.js', + 'assets/bower/store2.min.js', + 'assets/bower/Autolinker.min.js', + 'assets/bower/marked.min.js', + //prism + 'assets/prism/prism.js', + 'assets/prism/prism.css', ]); }); -gulp.task('gzip-built-css', function() { - return gulp.src('public/build/assets/css/*.css') - .pipe(zopfli({ format: 'gzip', append: true })) - .pipe(gulp.dest('public/build/assets/css/')); -}); - -gulp.task('br-built-css', function() { - return gulp.src('public/build/assets/css/*.css') - .pipe(brotli.compress({mode: 1, quality: 11})) - .pipe(gulp.dest('public/build/assets/css/')); -}); - -gulp.task('gzip-built-js', function() { - return gulp.src('public/build/assets/js/*.js') - .pipe(zopfli({ format: 'gzip', append: true })) - .pipe(gulp.dest('public/build/assets/js/')); -}); - -gulp.task('br-built-js', function() { - return gulp.src('public/build/assets/js/*.js') - .pipe(brotli.compress({mode: 1, quality: 11})) - .pipe(gulp.dest('public/build/assets/js/')); -}); - -gulp.task('gzip-built-libs-js', function() { - return gulp.src('public/build/assets/js/libs/*.js') - .pipe(zopfli({ format: 'gzip', append: true })) - .pipe(gulp.dest('public/build/assets/js/libs/')); -}); - -gulp.task('br-built-libs-js', function() { - return gulp.src('public/build/assets/js/libs/*.js') - .pipe(brotli.compress({mode: 1, quality: 11})) - .pipe(gulp.dest('public/build/assets/js/libs/')); -}); - gulp.task('bower', function() { //copy JS files gulp.src([ @@ -81,13 +50,54 @@ gulp.task('bower', function() { 'bower_components/Autolinker.js/dist/Autolinker.min.js', 'bower_components/marked/marked.min.js', ]) - .pipe(gulp.dest('public/assets/js/libs/')); + .pipe(gulp.dest('public/assets/bower/')); //copy CSS files gulp.src([ 'bower_components/alertify.js/dist/css/alertify.css', - 'bower_components/sanitize-css/dist/sanitize.min.css', + 'bower_components/sanitize-css/sanitize.css', ]) - .pipe(gulp.dest('public/assets/css/')); + .pipe(gulp.dest('public/assets/bower/')); }); -gulp.task('compress', ['gzip-built-css', 'br-built-css', 'gzip-built-js', 'br-built-js', 'gzip-built-libs-js', 'br-built-libs-js']); +gulp.task('compress', function () { + //hand-made css + gulp.src('public/build/assets/css/*.css') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/css/')); + gulp.src('public/build/assets/css/*.css') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/css/')); + //hand-made js + gulp.src('public/build/assets/js/*.js') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/js/')); + gulp.src('public/build/assets/js/*.js') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/js/')); + //bower components + gulp.src('public/build/assets/bower/*.css') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/bower/')); + gulp.src('public/build/assets/bower/*.js') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/bower/')); + gulp.src('public/build/assets/bower/*.css') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/bower/')); + gulp.src('public/build/assets/bower/*.js') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/bower/')); + //prism + gulp.src('public/build/assets/prism/*.css') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/prism/')); + gulp.src('public/build/assets/prism/*.js') + .pipe(zopfli({ format: 'gzip', append: true })) + .pipe(gulp.dest('public/build/assets/prism/')); + gulp.src('public/build/assets/prism/*.css') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/prism/')); + gulp.src('public/build/assets/prism/*.js') + .pipe(brotli.compress({mode: 1, quality: 11})) + .pipe(gulp.dest('public/build/assets/prism/')); +}); diff --git a/package.json b/package.json index 6076b82b..2fbf3530 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,26 @@ { - "name": "jbuk-frontend", - "version": "0.0.1", - "repository": "https://github.com/jonnybarnes/jonnybarnes.uk", - "license": "CC0-1.0", - "devDependencies": { - "gulp": "~3.9", - "gulp-brotli": "^1.0.1", - "gulp-zopfli": "^1.0.0", - "laravel-elixir": "^5.0.0", - "lint-staged": "^1.0.1", - "pre-commit": "^1.1.3" - }, - "private": true, - "scripts": { - "prod": "gulp --production", - "dev": "gulp watch", - "lint-staged": "lint-staged" - }, - "lint-staged": { - "eslint": "public/assets/js/*.js" - }, - "pre-commit": ["lint-staged"] + "name": "jbuk-frontend", + "version": "0.0.1", + "repository": "https://github.com/jonnybarnes/jonnybarnes.uk", + "license": "CC0-1.0", + "devDependencies": { + "gulp": "~3.9", + "gulp-brotli": "^1.0.1", + "gulp-zopfli": "^1.0.0", + "laravel-elixir": "^6.0.0-2", + "lint-staged": "^1.0.1", + "pre-commit": "^1.1.3" + }, + "private": true, + "scripts": { + "prod": "gulp --production", + "dev": "gulp watch", + "lint-staged": "lint-staged" + }, + "lint-staged": { + "eslint": "resources/assets/js/*.js" + }, + "pre-commit": [ + "lint-staged" + ] } diff --git a/public/assets/bower/Autolinker.min.js b/public/assets/bower/Autolinker.min.js new file mode 100644 index 00000000..4e73c279 --- /dev/null +++ b/public/assets/bower/Autolinker.min.js @@ -0,0 +1,10 @@ +/*! + * Autolinker.js + * 0.24.1 + * + * Copyright(c) 2016 Gregory Jacobs + * MIT License + * + * https://github.com/gregjacobs/Autolinker.js + */ +!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.Autolinker=e()}(this,function(){var t=function(t){t=t||{},this.urls=this.normalizeUrlsCfg(t.urls),this.email="boolean"==typeof t.email?t.email:!0,this.twitter="boolean"==typeof t.twitter?t.twitter:!0,this.phone="boolean"==typeof t.phone?t.phone:!0,this.hashtag=t.hashtag||!1,this.newWindow="boolean"==typeof t.newWindow?t.newWindow:!0,this.stripPrefix="boolean"==typeof t.stripPrefix?t.stripPrefix:!0;var e=this.hashtag;if(e!==!1&&"twitter"!==e&&"facebook"!==e&&"instagram"!==e)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||"",this.replaceFn=t.replaceFn||null,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return t.prototype={constructor:t,normalizeUrlsCfg:function(t){return null==t&&(t=!0),"boolean"==typeof t?{schemeMatches:t,wwwMatches:t,tldMatches:t}:{schemeMatches:"boolean"==typeof t.schemeMatches?t.schemeMatches:!0,wwwMatches:"boolean"==typeof t.wwwMatches?t.wwwMatches:!0,tldMatches:"boolean"==typeof t.tldMatches?t.tldMatches:!0}},normalizeTruncateCfg:function(e){return"number"==typeof e?{length:e,location:"end"}:t.Util.defaults(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(t){for(var e=this.getHtmlParser(),r=e.parse(t),n=0,s=[],i=0,a=r.length;a>i;i++){var o=r[i],h=o.getType();if("element"===h&&"a"===o.getTagName())o.isClosing()?n=Math.max(n-1,0):n++;else if("text"===h&&0===n){var c=this.parseText(o.getText(),o.getOffset());s.push.apply(s,c)}}return s=this.compactMatches(s),this.hashtag||(s=s.filter(function(t){return"hashtag"!==t.getType()})),this.email||(s=s.filter(function(t){return"email"!==t.getType()})),this.phone||(s=s.filter(function(t){return"phone"!==t.getType()})),this.twitter||(s=s.filter(function(t){return"twitter"!==t.getType()})),this.urls.schemeMatches||(s=s.filter(function(t){return"url"!==t.getType()||"scheme"!==t.getUrlMatchType()})),this.urls.wwwMatches||(s=s.filter(function(t){return"url"!==t.getType()||"www"!==t.getUrlMatchType()})),this.urls.tldMatches||(s=s.filter(function(t){return"url"!==t.getType()||"tld"!==t.getUrlMatchType()})),s},compactMatches:function(t){t.sort(function(t,e){return t.getOffset()-e.getOffset()});for(var e=0;es;s++){for(var a=r[s].parseMatches(t),o=0,h=a.length;h>o;o++)a[o].setOffset(e+a[o].getOffset());n.push.apply(n,a)}return n},link:function(t){if(!t)return"";for(var e=this.parse(t),r=[],n=0,s=0,i=e.length;i>s;s++){var a=e[s];r.push(t.substring(n,a.getOffset())),r.push(this.createMatchReturnVal(a)),n=a.getOffset()+a.getMatchedText().length}return r.push(t.substring(n)),r.join("")},createMatchReturnVal:function(e){var r;if(this.replaceFn&&(r=this.replaceFn.call(this,this,e)),"string"==typeof r)return r;if(r===!1)return e.getMatchedText();if(r instanceof t.HtmlTag)return r.toAnchorString();var n=this.getTagBuilder(),s=n.build(e);return s.toAnchorString()},getHtmlParser:function(){var e=this.htmlParser;return e||(e=this.htmlParser=new t.htmlParser.HtmlParser),e},getMatchers:function(){if(this.matchers)return this.matchers;var e=t.matcher,r=[new e.Hashtag({serviceName:this.hashtag}),new e.Email,new e.Phone,new e.Twitter,new e.Url({stripPrefix:this.stripPrefix})];return this.matchers=r},getTagBuilder:function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new t.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e}},t.link=function(e,r){var n=new t(r);return n.link(e)},t.match={},t.matcher={},t.htmlParser={},t.truncate={},t.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},defaults:function(t,e){for(var r in e)e.hasOwnProperty(r)&&void 0===t[r]&&(t[r]=e[r]);return t},extend:function(e,r){var n=e.prototype,s=function(){};s.prototype=n;var i;i=r.hasOwnProperty("constructor")?r.constructor:function(){n.constructor.apply(this,arguments)};var a=i.prototype=new s;return a.constructor=i,a.superclass=n,delete r.constructor,t.Util.assign(a,r),i},ellipsis:function(t,e,r){return t.length>e&&(r=null==r?"..":r,t=t.substring(0,e-r.length)+r),t},indexOf:function(t,e){if(Array.prototype.indexOf)return t.indexOf(e);for(var r=0,n=t.length;n>r;r++)if(t[r]===e)return r;return-1},splitAndCapture:function(t,e){for(var r,n=[],s=0;r=e.exec(t);)n.push(t.substring(s,r.index)),n.push(r[0]),s=r.index+r[0].length;return n.push(t.substring(s)),n},trim:function(t){return t.replace(this.trimRegex,"")}},t.HtmlTag=t.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(e){t.Util.assign(this,e),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(t){return this.tagName=t,this},getTagName:function(){return this.tagName||""},setAttr:function(t,e){var r=this.getAttrs();return r[t]=e,this},getAttr:function(t){return this.getAttrs()[t]},setAttrs:function(e){var r=this.getAttrs();return t.Util.assign(r,e),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(t){return this.setAttr("class",t)},addClass:function(e){for(var r,n=this.getClass(),s=this.whitespaceRegex,i=t.Util.indexOf,a=n?n.split(s):[],o=e.split(s);r=o.shift();)-1===i(a,r)&&a.push(r);return this.getAttrs()["class"]=a.join(" "),this},removeClass:function(e){for(var r,n=this.getClass(),s=this.whitespaceRegex,i=t.Util.indexOf,a=n?n.split(s):[],o=e.split(s);a.length&&(r=o.shift());){var h=i(a,r);-1!==h&&a.splice(h,1)}return this.getAttrs()["class"]=a.join(" "),this},getClass:function(){return this.getAttrs()["class"]||""},hasClass:function(t){return-1!==(" "+this.getClass()+" ").indexOf(" "+t+" ")},setInnerHtml:function(t){return this.innerHtml=t,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var t=this.getTagName(),e=this.buildAttrsStr();return e=e?" "+e:"",["<",t,e,">",this.getInnerHtml(),""].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var t=this.getAttrs(),e=[];for(var r in t)t.hasOwnProperty(r)&&e.push(r+'="'+t[r]+'"');return e.join(" ")}}),t.RegexLib=function(){var t="A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",e="0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",r=t+e,n=new RegExp("["+r+".\\-]*["+r+"\\-]"),s=/(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|press|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/;return{alphaNumericCharsStr:r,domainNameRegex:n,tldRegex:s}}(),t.AnchorTagBuilder=t.Util.extend(Object,{constructor:function(e){t.Util.assign(this,e)},build:function(e){return new t.HtmlTag({tagName:"a",attrs:this.createAttrs(e.getType(),e.getAnchorHref()),innerHtml:this.processAnchorText(e.getAnchorText())})},createAttrs:function(t,e){var r={href:e},n=this.createCssClass(t);return n&&(r["class"]=n),this.newWindow&&(r.target="_blank"),r},createCssClass:function(t){var e=this.className;return e?e+" "+e+"-"+t:""},processAnchorText:function(t){return t=this.doTruncate(t)},doTruncate:function(e){var r=this.truncate;if(!r)return e;var n=r.length,s=r.location;return"smart"===s?t.truncate.TruncateSmart(e,n,".."):"middle"===s?t.truncate.TruncateMiddle(e,n,".."):t.truncate.TruncateEnd(e,n,"..")}}),t.htmlParser.HtmlParser=t.Util.extend(Object,{htmlRegex:function(){var t=/!--([\s\S]+?)--/,e=/[0-9a-zA-Z][0-9a-zA-Z:]*/,r=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,n=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,s=r.source+"(?:\\s*=\\s*"+n.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",s,"|",n.source+")",")*",">",")","|","(?:","<(/)?","(?:",t.source,"|","(?:","("+e.source+")","(?:","\\s*",s,")*","\\s*/?",")",")",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/( | |<|<|>|>|"|"|')/gi,parse:function(t){for(var e,r,n=this.htmlRegex,s=0,i=[];null!==(e=n.exec(t));){var a=e[0],o=e[3],h=e[1]||e[4],c=!!e[2],u=e.index,l=t.substring(s,u);l&&(r=this.parseTextAndEntityNodes(s,l),i.push.apply(i,r)),o?i.push(this.createCommentNode(u,a,o)):i.push(this.createElementNode(u,a,h,c)),s=u+a.length}if(si;i+=2){var o=s[i],h=s[i+1];o&&(n.push(this.createTextNode(e,o)),e+=o.length),h&&(n.push(this.createEntityNode(e,h)),e+=h.length)}return n},createCommentNode:function(e,r,n){return new t.htmlParser.CommentNode({offset:e,text:r,comment:t.Util.trim(n)})},createElementNode:function(e,r,n,s){return new t.htmlParser.ElementNode({offset:e,text:r,tagName:n.toLowerCase(),closing:s})},createEntityNode:function(e,r){return new t.htmlParser.EntityNode({offset:e,text:r})},createTextNode:function(e,r){return new t.htmlParser.TextNode({offset:e,text:r})}}),t.htmlParser.HtmlNode=t.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(e){t.Util.assign(this,e)},getType:t.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),t.htmlParser.CommentNode=t.Util.extend(t.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),t.htmlParser.ElementNode=t.Util.extend(t.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),t.htmlParser.EntityNode=t.Util.extend(t.htmlParser.HtmlNode,{getType:function(){return"entity"}}),t.htmlParser.TextNode=t.Util.extend(t.htmlParser.HtmlNode,{getType:function(){return"text"}}),t.match.Match=t.Util.extend(Object,{constructor:function(t,e){this.matchedText=t,this.offset=e},getType:t.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(t){this.offset=t},getOffset:function(){return this.offset},getAnchorHref:t.Util.abstractMethod,getAnchorText:t.Util.abstractMethod}),t.match.Email=t.Util.extend(t.match.Match,{constructor:function(e,r,n){t.match.Match.prototype.constructor.call(this,e,r),this.email=n},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),t.match.Hashtag=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s){t.match.Match.prototype.constructor.call(this,e,r),this.serviceName=n,this.hashtag=s},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var t=this.serviceName,e=this.hashtag;switch(t){case"twitter":return"https://twitter.com/hashtag/"+e;case"facebook":return"https://www.facebook.com/hashtag/"+e;case"instagram":return"https://instagram.com/explore/tags/"+e;default:throw new Error("Unknown service name to point hashtag to: ",t)}},getAnchorText:function(){return"#"+this.hashtag}}),t.match.Phone=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s){t.match.Match.prototype.constructor.call(this,e,r),this.number=n,this.plusSign=s},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),t.match.Twitter=t.Util.extend(t.match.Match,{constructor:function(e,r,n){t.match.Match.prototype.constructor.call(this,e,r),this.twitterHandle=n},getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),t.match.Url=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s,i,a,o){t.match.Match.prototype.constructor.call(this,e,r),this.urlMatchType=s,this.url=n,this.protocolUrlMatch=i,this.protocolRelativeMatch=a,this.stripPrefix=o},urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var t=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(t=this.url="http://"+t,this.protocolPrepended=!0),t},getAnchorHref:function(){var t=this.getUrl();return t.replace(/&/g,"&")},getAnchorText:function(){var t=this.getMatchedText();return this.protocolRelativeMatch&&(t=this.stripProtocolRelativePrefix(t)),this.stripPrefix&&(t=this.stripUrlPrefix(t)),t=this.removeTrailingSlash(t)},stripUrlPrefix:function(t){return t.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(t){return t.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(t){return"/"===t.charAt(t.length-1)&&(t=t.slice(0,-1)),t}}),t.matcher.Matcher=t.Util.extend(Object,{constructor:function(e){t.Util.assign(this,e)},parseMatches:t.Util.abstractMethod}),t.matcher.Email=t.Util.extend(t.matcher.Matcher,{matcherRegex:function(){var e=t.RegexLib.alphaNumericCharsStr,r=new RegExp("["+e+"\\-;:&=+$.,]+@"),n=t.RegexLib.domainNameRegex,s=t.RegexLib.tldRegex;return new RegExp([r.source,n.source,"\\.",s.source].join(""),"gi")}(),parseMatches:function(e){for(var r,n=this.matcherRegex,s=[];null!==(r=n.exec(e));){var i=r[0];s.push(new t.match.Email(i,r.index,i))}return s}}),t.matcher.Hashtag=t.Util.extend(t.matcher.Matcher,{matcherRegex:new RegExp("#[_"+t.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+t.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.nonWordCharRegex,i=this.serviceName,a=[];null!==(r=n.exec(e));){var o=r.index,h=e.charAt(o-1);if(0===o||s.test(h)){var c=r[0],u=r[0].slice(1);a.push(new t.match.Hashtag(c,o,i,u))}}return a}}),t.matcher.Phone=t.Util.extend(t.matcher.Matcher,{matcherRegex:/(?:(\+)?\d{1,3}[-\040.])?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]\d{4}/g,parseMatches:function(e){for(var r,n=this.matcherRegex,s=[];null!==(r=n.exec(e));){var i=r[0],a=i.replace(/\D/g,""),o=!!r[1];s.push(new t.match.Phone(i,r.index,a,o))}return s}}),t.matcher.Twitter=t.Util.extend(t.matcher.Matcher,{matcherRegex:new RegExp("@[_"+t.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),nonWordCharRegex:new RegExp("[^"+t.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.nonWordCharRegex,i=[];null!==(r=n.exec(e));){var a=r.index,o=e.charAt(a-1);if(0===a||s.test(o)){var h=r[0],c=r[0].slice(1);i.push(new t.match.Twitter(h,a,c))}}return i}}),t.matcher.Url=t.Util.extend(t.matcher.Matcher,{matcherRegex:function(){var e=/(?:[A-Za-z][-.+A-Za-z0-9]*:(?![A-Za-z][-.+A-Za-z0-9]*:\/\/)(?!\d+\/?)(?:\/\/)?)/,r=/(?:www\.)/,n=t.RegexLib.domainNameRegex,s=t.RegexLib.tldRegex,i=t.RegexLib.alphaNumericCharsStr,a=new RegExp("["+i+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;]*["+i+"\\-+&@#/%=~_()|'$*\\[\\]]");return new RegExp(["(?:","(",e.source,n.source,")","|","(","(//)?",r.source,n.source,")","|","(","(//)?",n.source+"\\.",s.source,")",")","(?:"+a.source+")?"].join(""),"gi")}(),wordCharRegExp:/\w/,openParensRe:/\(/g,closeParensRe:/\)/g,parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.stripPrefix,i=[];null!==(r=n.exec(e));){var a=r[0],o=r[1],h=r[2],c=r[3],u=r[5],l=r.index,g=c||u,f=e.charAt(l-1);if(t.matcher.UrlMatchValidator.isValid(a,o)&&!(l>0&&"@"===f||l>0&&g&&this.wordCharRegExp.test(f))){if(this.matchHasUnbalancedClosingParen(a))a=a.substr(0,a.length-1);else{var m=this.matchHasInvalidCharAfterTld(a,o);m>-1&&(a=a.substr(0,m))}var p=o?"scheme":h?"www":"tld",d=!!o;i.push(new t.match.Url(a,l,a,p,d,!!g,s))}}return i},matchHasUnbalancedClosingParen:function(t){var e=t.charAt(t.length-1);if(")"===e){var r=t.match(this.openParensRe),n=t.match(this.closeParensRe),s=r&&r.length||0,i=n&&n.length||0;if(i>s)return!0}return!1},matchHasInvalidCharAfterTld:function(t,e){if(!t)return-1;var r=0;e&&(r=t.indexOf(":"),t=t.slice(r));var n=/^((.?\/\/)?[A-Za-z0-9\u00C0-\u017F\.\-]*[A-Za-z0-9\u00C0-\u017F\-]\.[A-Za-z]+)/,s=n.exec(t);return null===s?-1:(r+=s[1].length,t=t.slice(s[1].length),/^[^.A-Za-z:\/?#]/.test(t)?r:-1)}}),t.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z\u00C0-\u017F]/,isValid:function(t,e){return!(e&&!this.isValidUriScheme(e)||this.urlMatchDoesNotHaveProtocolOrDot(t,e)||this.urlMatchDoesNotHaveAtLeastOneWordChar(t,e))},isValidUriScheme:function(t){var e=t.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==e&&"vbscript:"!==e},urlMatchDoesNotHaveProtocolOrDot:function(t,e){return!(!t||e&&this.hasFullProtocolRegex.test(e)||-1!==t.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(t,e){return t&&e?!this.hasWordCharAfterProtocolRegex.test(t):!1}},t.truncate.TruncateEnd=function(e,r,n){return t.Util.ellipsis(e,r,n)},t.truncate.TruncateMiddle=function(t,e,r){if(t.length<=e)return t;var n=e-r.length,s="";return n>0&&(s=t.substr(-1*Math.floor(n/2))),(t.substr(0,Math.ceil(n/2))+r+s).substr(0,e)},t.truncate.TruncateSmart=function(t,e,r){var n=function(t){var e={},r=t,n=r.match(/^([a-z]+):\/\//i);return n&&(e.scheme=n[1],r=r.substr(n[0].length)),n=r.match(/^(.*?)(?=(\?|#|\/|$))/i),n&&(e.host=n[1],r=r.substr(n[0].length)),n=r.match(/^\/(.*?)(?=(\?|#|$))/i),n&&(e.path=n[1],r=r.substr(n[0].length)),n=r.match(/^\?(.*?)(?=(#|$))/i),n&&(e.query=n[1],r=r.substr(n[0].length)),n=r.match(/^#(.*?)$/i),n&&(e.fragment=n[1]),e},s=function(t){var e="";return t.scheme&&t.host&&(e+=t.scheme+"://"),t.host&&(e+=t.host),t.path&&(e+="/"+t.path),t.query&&(e+="?"+t.query),t.fragment&&(e+="#"+t.fragment),e},i=function(t,e){var n=e/2,s=Math.ceil(n),i=-1*Math.floor(n),a="";return 0>i&&(a=t.substr(i)),t.substr(0,s)+r+a};if(t.length<=e)return t;var a=e-r.length,o=n(t);if(o.query){var h=o.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);h&&(o.query=o.query.substr(0,h[1].length),t=s(o))}if(t.length<=e)return t;if(o.host&&(o.host=o.host.replace(/^www\./,""),t=s(o)),t.length<=e)return t;var c="";if(o.host&&(c+=o.host),c.length>=a)return o.host.length==e?(o.host.substr(0,e-r.length)+r).substr(0,e):i(c,a).substr(0,e);var u="";if(o.path&&(u+="/"+o.path),o.query&&(u+="?"+o.query),u){if((c+u).length>=a){if((c+u).length==e)return(c+u).substr(0,e);var l=a-c.length;return(c+i(u,l)).substr(0,e)}c+=u}if(o.fragment){var g="#"+o.fragment;if((c+g).length>=a){if((c+g).length==e)return(c+g).substr(0,e);var f=a-c.length;return(c+i(g,f)).substr(0,e)}c+=g}if(o.scheme&&o.host){var m=o.scheme+"://";if((c+m).length0&&(p=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+p).substr(0,e)},t}); \ No newline at end of file diff --git a/public/assets/bower/alertify.css b/public/assets/bower/alertify.css new file mode 100644 index 00000000..a49a7e6a --- /dev/null +++ b/public/assets/bower/alertify.css @@ -0,0 +1 @@ +.alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto} \ No newline at end of file diff --git a/public/assets/bower/alertify.js b/public/assets/bower/alertify.js new file mode 100644 index 00000000..bbd91365 --- /dev/null +++ b/public/assets/bower/alertify.js @@ -0,0 +1 @@ +!function(){"use strict";function t(){var t={parent:document.body,version:"1.0.11",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,o="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){o(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement("div");a.className=o||"default",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,"function"==typeof n&&a.addEventListener("click",n),i.appendChild(a),setTimeout(function(){a.className+=" show"},10),this.close(a,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",function(i){t.onOkay&&"function"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:"ok",inputValue:l.value,event:i}:{buttonClicked:"ok",event:i}),o(n)}),a&&a.addEventListener("click",function(i){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:"cancel",event:i}),o(n)}),l&&l.addEventListener("keyup",function(t){13===t.which&&i.click()})}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var i=n.querySelector(".ok"),a=n.querySelector(".cancel"),l=n.querySelector("input"),s=n.querySelector("label");l&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(l.value=this.promptValue));var r;return"function"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout(function(){n.classList.remove("hide"),l&&t.type&&"prompt"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,"alert",o,n)||this},confirm:function(e,o,n){return t.dialog(e,"confirm",o,n)||this},prompt:function(e,o,n){return t.dialog(e,"prompt",o,n)||this},log:function(e,o){return t.log(e,"default",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,"success",o),this},error:function(e,o){return t.log(e,"error",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",o),setTimeout(o,e)}};if("undefined"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else"function"==typeof define&&define.amd?define(function(){return new t}):window.alertify=new t}(); \ No newline at end of file diff --git a/public/assets/js/libs/fetch.js b/public/assets/bower/fetch.js similarity index 97% rename from public/assets/js/libs/fetch.js rename to public/assets/bower/fetch.js index fac11e42..01aa5d06 100644 --- a/public/assets/js/libs/fetch.js +++ b/public/assets/bower/fetch.js @@ -110,7 +110,7 @@ var support = { blob: 'FileReader' in self && 'Blob' in self && (function() { try { - new Blob(); + new Blob() return true } catch(e) { return false @@ -267,7 +267,7 @@ function headers(xhr) { var head = new Headers() - var pairs = xhr.getAllResponseHeaders().trim().split('\n') + var pairs = (xhr.getAllResponseHeaders() || '').trim().split('\n') pairs.forEach(function(header) { var split = header.trim().split(':') var key = split.shift().trim() @@ -320,9 +320,9 @@ return new Response(null, {status: status, headers: {location: url}}) } - self.Headers = Headers; - self.Request = Request; - self.Response = Response; + self.Headers = Headers + self.Request = Request + self.Response = Response self.fetch = function(input, init) { return new Promise(function(resolve, reject) { @@ -345,7 +345,7 @@ return xhr.getResponseHeader('X-Request-URL') } - return; + return } xhr.onload = function() { @@ -360,7 +360,7 @@ headers: headers(xhr), url: responseURL() } - var body = 'response' in xhr ? xhr.response : xhr.responseText; + var body = 'response' in xhr ? xhr.response : xhr.responseText resolve(new Response(body, options)) } @@ -368,6 +368,10 @@ reject(new TypeError('Network request failed')) } + xhr.ontimeout = function() { + reject(new TypeError('Network request failed')) + } + xhr.open(request.method, request.url, true) if (request.credentials === 'include') { diff --git a/public/assets/js/libs/marked.min.js b/public/assets/bower/marked.min.js similarity index 100% rename from public/assets/js/libs/marked.min.js rename to public/assets/bower/marked.min.js diff --git a/public/assets/bower/sanitize.css b/public/assets/bower/sanitize.css new file mode 100644 index 00000000..e9e84f1c --- /dev/null +++ b/public/assets/bower/sanitize.css @@ -0,0 +1,352 @@ +/*! sanitize.css v3.3.0 | CC0 1.0 Public Domain | github.com/10up/sanitize.css */ + +/* Latest tested: Android 6, Chrome 48, Edge 13, Firefox 44, Internet Explorer 11, iOS 9, Opera 35, Safari 9, Windows Phone 8.1 */ + +/* + * Normalization + */ + +abbr[title] { + text-decoration: underline; /* Chrome 48+, Edge 12+, Internet Explorer 11-, Safari 9+ */ + text-decoration: underline dotted; /* Firefox 40+ */ +} + +audio:not([controls]) { + display: none; /* Chrome 44-, iOS 8+, Safari 9+ */ +} + +b, +strong { + font-weight: bolder; /* Edge 12+, Safari 6.2+, and Chrome 18+ */ +} + +button { + -webkit-appearance: button; /* iOS 8+ */ + overflow: visible; /* Internet Explorer 11- */ +} + +button, +input { +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0;/* Firefox 4+ */ + padding: 0;/* Firefox 4+ */ +} + +button:-moz-focusring, input:-moz-focusring { + outline: 1px dotted ButtonText;/* Firefox 4+ */ +} + +button, +select { + text-transform: none; /* Firefox 40+, Internet Explorer 11- */ +} + +details { + display: block; /* Edge 12+, Firefox 40+, Internet Explorer 11-, Windows Phone 8.1+ */ +} + +html { + -ms-overflow-style: -ms-autohiding-scrollbar; /* Edge 12+, Internet Explorer 11- */ + overflow-y: scroll; /* All browsers without overlaying scrollbars */ + -webkit-text-size-adjust: 100%; /* iOS 8+, Windows Phone 8.1+ */ +} + +hr { + overflow: visible; /* Internet Explorer 11-, Edge 12+ */ +} + +input { + -webkit-border-radius: 0 /* iOS 8+ */ +} + +input[type="button"], + input[type="reset"], + input[type="submit"] { + -webkit-appearance: button;/* iOS 8+ */ +} + +input[type="number"] { + width: auto;/* Firefox 36+ */ +} + +input[type="search"] { + -webkit-appearance: textfield;/* Chrome 45+, Safari 9+ */ +} + +input[type="search"]::-webkit-search-cancel-button, + input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none;/* Chrome 45+, Safari 9+ */ +} + +main { + display: block; /* Android 4.3-, Internet Explorer 11-, Windows Phone 8.1+ */ +} + +pre { + overflow: auto; /* Internet Explorer 11- */ +} + +progress { + display: inline-block; /* Internet Explorer 11-, Windows Phone 8.1+ */ +} + +summary { + display: block; /* Firefox 40+, Internet Explorer 11-, Windows Phone 8.1+ */ +} + +svg:not(:root) { + overflow: hidden; /* Internet Explorer 11- */ +} + +template { + display: none; /* Android 4.3-, Internet Explorer 11-, iOS 7-, Safari 7-, Windows Phone 8.1+ */ +} + +textarea { + overflow: auto; /* Edge 12+, Internet Explorer 11- */ +} + +[hidden] { + display: none; /* Internet Explorer 10- */ +} + +/* + * Universal inheritance + */ + +*, +:before, +:after { + box-sizing: inherit; +} + +* { + font-size: inherit; + line-height: inherit; +} + +:before, +:after { + text-decoration: inherit; + vertical-align: inherit; +} + +button, +input, +select, +textarea { + font-family: inherit; + font-style: inherit; + font-weight: inherit; +} + + + +/* + * Opinionated defaults + */ + +/* specify the margin and padding of all elements */ + +* { + margin: 0; + padding: 0; +} + +/* specify the border style and width of all elements */ + +*, +:before, +:after { + border-style: solid; + border-width: 0; +} + +/* remove the tapping delay from clickable elements */ + +a, +area, +button, +input, +label, +select, +textarea, +[tabindex] { + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +/* specify the standard appearance of selects */ + +select { + -moz-appearance: none; /* Firefox 40+ */ + -webkit-appearance: none /* Chrome 45+ */ +} + +select::-ms-expand { + display: none;/* Edge 12+, Internet Explorer 11- */ +} + +select::-ms-value { + color: currentColor;/* Edge 12+, Internet Explorer 11- */ +} + +/* use current current as the default fill of svg elements */ + +svg { + fill: currentColor; +} + +/* specify the progress cursor of updating elements */ + +[aria-busy="true"] { + cursor: progress; +} + +/* specify the pointer cursor of trigger elements */ + +[aria-controls] { + cursor: pointer; +} + +/* specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */ + +[aria-disabled] { + cursor: default; +} + +/* specify the style of visually hidden yet accessible elements */ + +[hidden][aria-hidden="false"] { + clip: rect(0 0 0 0); + display: inherit; + position: absolute +} + +[hidden][aria-hidden="false"]:focus { + clip: auto; +} + + + +/* + * Configurable defaults + */ + +/* specify the background repeat of all elements */ + +* { + background-repeat: no-repeat; +} + +/* specify the root styles of the document */ + +:root { + background-color: #ffffff; + box-sizing: border-box; + color: #000000; + cursor: default; + font: 100%/1.5 sans-serif; +} + +/* specify the text decoration of anchors */ + +a { + text-decoration: none; +} + +/* specify the alignment of media elements */ + +audio, +canvas, +iframe, +img, +svg, +video { + vertical-align: middle; +} + +/* specify the coloring of form elements */ + +button, +input, +select, +textarea { + background-color: transparent; + color: inherit; +} + +/* specify the minimum height of form elements */ + +button, +[type="button"], +[type="date"], +[type="datetime"], +[type="datetime-local"], +[type="email"], +[type="month"], +[type="number"], +[type="password"], +[type="reset"], +[type="search"], +[type="submit"], +[type="tel"], +[type="text"], +[type="time"], +[type="url"], +[type="week"], +select, +textarea { + min-height: 1.5em; +} + +/* specify the font family of code elements */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; +} + +/* specify the list style of nav lists */ + +nav ol, +nav ul { + list-style: none; +} + +/* specify the font size of small elements */ + +small { + font-size: 75%; +} + +/* specify the border styling of tables */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* specify the resizability of textareas */ + +textarea { + resize: vertical; +} + +/* specify the background color, font color, and drop shadow of text selections */ + +::-moz-selection { + background-color: #b3d4fc; /* required when declaring ::selection */ + color: #ffffff; + text-shadow: none; +} + +::selection { + background-color: #b3d4fc; /* required when declaring ::selection */ + color: #ffffff; + text-shadow: none; +} diff --git a/public/assets/js/libs/store2.min.js b/public/assets/bower/store2.min.js similarity index 100% rename from public/assets/js/libs/store2.min.js rename to public/assets/bower/store2.min.js diff --git a/public/assets/css/alertify.css b/public/assets/css/alertify.css deleted file mode 100644 index ced38bdd..00000000 --- a/public/assets/css/alertify.css +++ /dev/null @@ -1 +0,0 @@ -.alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:2}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;-webkit-transform:translateZ(0);transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;-webkit-transform:translateZ(0);transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto} \ No newline at end of file diff --git a/public/assets/css/images/icons-000000@2x.png b/public/assets/css/images/icons-000000@2x.png deleted file mode 100644 index d65438c12c6e2a626bf4afa91e17ac77ce3835d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1548 zcmcJP_d6R17{_B)ku#cFF?+4XYR#fX2^ujXh&!~-mf~p5qJ*GY9;+cnjYMmUSu19* zimFtUw9fX_x)5B$T@dQh{tx&5^7(#$dEe*#KF|B6BM~s5po|~@006?REuA>j1pv4O z1b8?~0&Ako0WaFz-W&jE%@I2B=Hqy-2qzd6&@>@S=NK=f9mtJEP>6Iw zI0OD93IJ~$B(1W$ir;QK4!D>phG$AbVBB_1RCK&YKRj&%0N_)ATbiR{=5|UqpEoFq zruqJ{uY=kltJNM&B}oOTBx}A_(g-PMD4Rx8^-N)SmPx@EvKB zcd`0I>?kQBApB(?le;lE@HKlZu*Y~$<{bMxn+|4O_z|j2bY)R-ca>iux%n9hpR5J8 z;qD(*Aq0u~YAf)kFH7F$^2t2QL=n@+iu8z+6iqO91zuW3>asQuU-GV6L?^i)>bq(f z(V2A(Ma_;`M2vRFU=s#wE!vhbGL;A6H9&IxBj6}#!;cdv(o#_$K>{S6mCu!8d-;Efe%mbZElr6`}n}n zC}3A^zQyaI9BatvzFXbZ8Il2Gx~Qwi{o5m2%hBxCVQpb?igC5R?&_BTnTh-|i|er_ z+64|_Ip~_gDn`NRfbo2^0^_8wrT>`DwvX;yDuT|4pu?4GOu>IYxo*hZwJZOcMR0N0 z)M0co&bYtS0Y63F887Znyp(bYgU%VAX|}C2$t!!Of20W}`BM=+hP~T$l){|R=lKRX v@4R)dA?TsAz)Cx1X+KUU11|vpZK)lI+DJGsJet+9=D}-ee)GPTvh_l3+ diff --git a/public/assets/css/normalize.css b/public/assets/css/normalize.css deleted file mode 100644 index 5e5e3c89..00000000 --- a/public/assets/css/normalize.css +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/public/assets/css/sanitize.min.css b/public/assets/css/sanitize.min.css deleted file mode 100644 index 9d0d9800..00000000 --- a/public/assets/css/sanitize.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! sanitize.css v3.2.0 | CC0 1.0 Public Domain | github.com/10up/sanitize.css */audio:not([controls]){display:none}button{-webkit-appearance:button;overflow:visible}details{display:block}html{-ms-overflow-style:-ms-autohiding-scrollbar;overflow-y:scroll;-webkit-text-size-adjust:100%}input{-webkit-border-radius:0}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button}input[type=number]{width:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}main{display:block}pre{overflow:auto}progress{display:inline-block}small{font-size:75%}summary{display:block}svg:not(:root){overflow:hidden}template{display:none}textarea{overflow:auto}[hidden]{display:none}*,:after,:before{box-sizing:inherit}*{font-size:inherit;line-height:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*,:after,:before{border-style:solid;border-width:0}*{background-repeat:no-repeat;margin:0;padding:0}:root{background-color:#fff;box-sizing:border-box;color:#000;cursor:default;font:100%/1.5 sans-serif}a{text-decoration:none}audio,canvas,iframe,img,svg,video{vertical-align:middle}button,input,select,textarea{background-color:transparent;color:inherit;font-family:inherit;font-style:inherit;font-weight:inherit}[type=button],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=reset],[type=search],[type=submit],[type=tel],[type=text],[type=time],[type=url],[type=week],button,select,textarea{min-height:1.5em}code,kbd,pre,samp{font-family:monospace}nav ol,nav ul{list-style:none}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}table{border-collapse:collapse;border-spacing:0}textarea{resize:vertical}::-moz-selection{background-color:#b3d4fc;color:#fff;text-shadow:none}::selection{background-color:#b3d4fc;color:#fff;text-shadow:none}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}[hidden][aria-hidden=false]{clip:rect(0 0 0 0);display:inherit;position:absolute}[hidden][aria-hidden=false]:focus{clip:auto}[tabindex],a,area,button,input,label,select,textarea{-ms-touch-action:manipulation;touch-action:manipulation} -/*# sourceMappingURL=sanitize.min.css.map */ \ No newline at end of file diff --git a/public/assets/js/libs/Autolinker.min.js b/public/assets/js/libs/Autolinker.min.js deleted file mode 100644 index e4f6366a..00000000 --- a/public/assets/js/libs/Autolinker.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Autolinker.js - * 0.24.0 - * - * Copyright(c) 2016 Gregory Jacobs - * MIT - * - * https://github.com/gregjacobs/Autolinker.js - */ -!function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.Autolinker=b()}):"object"==typeof exports?module.exports=b():a.Autolinker=b()}(this,function(){var a=function(a){a=a||{},this.urls=this.normalizeUrlsCfg(a.urls),this.email="boolean"==typeof a.email?a.email:!0,this.twitter="boolean"==typeof a.twitter?a.twitter:!0,this.phone="boolean"==typeof a.phone?a.phone:!0,this.hashtag=a.hashtag||!1,this.newWindow="boolean"==typeof a.newWindow?a.newWindow:!0,this.stripPrefix="boolean"==typeof a.stripPrefix?a.stripPrefix:!0;var b=this.hashtag;if(b!==!1&&"twitter"!==b&&"facebook"!==b&&"instagram"!==b)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(a.truncate),this.className=a.className||"",this.replaceFn=a.replaceFn||null,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return a.prototype={constructor:a,normalizeUrlsCfg:function(a){return null==a&&(a=!0),"boolean"==typeof a?{schemeMatches:a,wwwMatches:a,tldMatches:a}:{schemeMatches:"boolean"==typeof a.schemeMatches?a.schemeMatches:!0,wwwMatches:"boolean"==typeof a.wwwMatches?a.wwwMatches:!0,tldMatches:"boolean"==typeof a.tldMatches?a.tldMatches:!0}},normalizeTruncateCfg:function(b){return"number"==typeof b?{length:b,location:"end"}:a.Util.defaults(b||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(a){for(var b=this.getHtmlParser(),c=b.parse(a),d=0,e=[],f=0,g=c.length;g>f;f++){var h=c[f],i=h.getType();if("element"===i&&"a"===h.getTagName())h.isClosing()?d=Math.max(d-1,0):d++;else if("text"===i&&0===d){var j=this.parseText(h.getText(),h.getOffset());e.push.apply(e,j)}}return e=this.compactMatches(e),this.hashtag||(e=e.filter(function(a){return"hashtag"!==a.getType()})),this.email||(e=e.filter(function(a){return"email"!==a.getType()})),this.phone||(e=e.filter(function(a){return"phone"!==a.getType()})),this.twitter||(e=e.filter(function(a){return"twitter"!==a.getType()})),this.urls.schemeMatches||(e=e.filter(function(a){return"url"!==a.getType()||"scheme"!==a.getUrlMatchType()})),this.urls.wwwMatches||(e=e.filter(function(a){return"url"!==a.getType()||"www"!==a.getUrlMatchType()})),this.urls.tldMatches||(e=e.filter(function(a){return"url"!==a.getType()||"tld"!==a.getUrlMatchType()})),e},compactMatches:function(a){a.sort(function(a,b){return a.getOffset()-b.getOffset()});for(var b=0;be;e++){for(var g=c[e].parseMatches(a),h=0,i=g.length;i>h;h++)g[h].setOffset(b+g[h].getOffset());d.push.apply(d,g)}return d},link:function(a){if(!a)return"";for(var b=this.parse(a),c=[],d=0,e=0,f=b.length;f>e;e++){var g=b[e];c.push(a.substring(d,g.getOffset())),c.push(this.createMatchReturnVal(g)),d=g.getOffset()+g.getMatchedText().length}return c.push(a.substring(d)),c.join("")},createMatchReturnVal:function(b){var c;if(this.replaceFn&&(c=this.replaceFn.call(this,this,b)),"string"==typeof c)return c;if(c===!1)return b.getMatchedText();if(c instanceof a.HtmlTag)return c.toAnchorString();var d=this.getTagBuilder(),e=d.build(b);return e.toAnchorString()},getHtmlParser:function(){var b=this.htmlParser;return b||(b=this.htmlParser=new a.htmlParser.HtmlParser),b},getMatchers:function(){if(this.matchers)return this.matchers;var b=a.matcher,c=[new b.Hashtag({serviceName:this.hashtag}),new b.Email,new b.Phone,new b.Twitter,new b.Url({stripPrefix:this.stripPrefix})];return this.matchers=c},getTagBuilder:function(){var b=this.tagBuilder;return b||(b=this.tagBuilder=new a.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),b}},a.link=function(b,c){var d=new a(c);return d.link(b)},a.match={},a.matcher={},a.htmlParser={},a.truncate={},a.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a},defaults:function(a,b){for(var c in b)b.hasOwnProperty(c)&&void 0===a[c]&&(a[c]=b[c]);return a},extend:function(b,c){var d=b.prototype,e=function(){};e.prototype=d;var f;f=c.hasOwnProperty("constructor")?c.constructor:function(){d.constructor.apply(this,arguments)};var g=f.prototype=new e;return g.constructor=f,g.superclass=d,delete c.constructor,a.Util.assign(g,c),f},ellipsis:function(a,b,c){return a.length>b&&(c=null==c?"..":c,a=a.substring(0,b-c.length)+c),a},indexOf:function(a,b){if(Array.prototype.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},splitAndCapture:function(a,b){if(!b.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var c,d=[],e=0;c=b.exec(a);)d.push(a.substring(e,c.index)),d.push(c[0]),e=c.index+c[0].length;return d.push(a.substring(e)),d},trim:function(a){return a.replace(this.trimRegex,"")}},a.HtmlTag=a.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(b){a.Util.assign(this,b),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(a){return this.tagName=a,this},getTagName:function(){return this.tagName||""},setAttr:function(a,b){var c=this.getAttrs();return c[a]=b,this},getAttr:function(a){return this.getAttrs()[a]},setAttrs:function(b){var c=this.getAttrs();return a.Util.assign(c,b),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(a){return this.setAttr("class",a)},addClass:function(b){for(var c,d=this.getClass(),e=this.whitespaceRegex,f=a.Util.indexOf,g=d?d.split(e):[],h=b.split(e);c=h.shift();)-1===f(g,c)&&g.push(c);return this.getAttrs()["class"]=g.join(" "),this},removeClass:function(b){for(var c,d=this.getClass(),e=this.whitespaceRegex,f=a.Util.indexOf,g=d?d.split(e):[],h=b.split(e);g.length&&(c=h.shift());){var i=f(g,c);-1!==i&&g.splice(i,1)}return this.getAttrs()["class"]=g.join(" "),this},getClass:function(){return this.getAttrs()["class"]||""},hasClass:function(a){return-1!==(" "+this.getClass()+" ").indexOf(" "+a+" ")},setInnerHtml:function(a){return this.innerHtml=a,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var a=this.getTagName(),b=this.buildAttrsStr();return b=b?" "+b:"",["<",a,b,">",this.getInnerHtml(),""].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var a=this.getAttrs(),b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+'="'+a[c]+'"');return b.join(" ")}}),a.RegexLib=function(){var a="A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",b="0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",c=a+b,d=new RegExp("["+c+".\\-]*["+c+"\\-]"),e=/(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|press|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/;return{alphaNumericCharsStr:c,domainNameRegex:d,tldRegex:e}}(),a.AnchorTagBuilder=a.Util.extend(Object,{constructor:function(b){a.Util.assign(this,b)},build:function(b){return new a.HtmlTag({tagName:"a",attrs:this.createAttrs(b.getType(),b.getAnchorHref()),innerHtml:this.processAnchorText(b.getAnchorText())})},createAttrs:function(a,b){var c={href:b},d=this.createCssClass(a);return d&&(c["class"]=d),this.newWindow&&(c.target="_blank"),c},createCssClass:function(a){var b=this.className;return b?b+" "+b+"-"+a:""},processAnchorText:function(a){return a=this.doTruncate(a)},doTruncate:function(b){var c=this.truncate;if(!c)return b;var d=c.length,e=c.location;return"smart"===e?a.truncate.TruncateSmart(b,d,".."):"middle"===e?a.truncate.TruncateMiddle(b,d,".."):a.truncate.TruncateEnd(b,d,"..")}}),a.htmlParser.HtmlParser=a.Util.extend(Object,{htmlRegex:function(){var a=/!--([\s\S]+?)--/,b=/[0-9a-zA-Z][0-9a-zA-Z:]*/,c=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,d=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,e=c.source+"(?:\\s*=\\s*"+d.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",e,"|",d.source+")",")*",">",")","|","(?:","<(/)?","(?:",a.source,"|","(?:","("+b.source+")","(?:","\\s+",e,")*","\\s*/?",")",")",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/( | |<|<|>|>|"|"|')/gi,parse:function(a){for(var b,c,d=this.htmlRegex,e=0,f=[];null!==(b=d.exec(a));){var g=b[0],h=b[3],i=b[1]||b[4],j=!!b[2],k=b.index,l=a.substring(e,k);l&&(c=this.parseTextAndEntityNodes(e,l),f.push.apply(f,c)),f.push(h?this.createCommentNode(k,g,h):this.createElementNode(k,g,i,j)),e=k+g.length}if(ef;f+=2){var h=e[f],i=e[f+1];h&&(d.push(this.createTextNode(b,h)),b+=h.length),i&&(d.push(this.createEntityNode(b,i)),b+=i.length)}return d},createCommentNode:function(b,c,d){return new a.htmlParser.CommentNode({offset:b,text:c,comment:a.Util.trim(d)})},createElementNode:function(b,c,d,e){return new a.htmlParser.ElementNode({offset:b,text:c,tagName:d.toLowerCase(),closing:e})},createEntityNode:function(b,c){return new a.htmlParser.EntityNode({offset:b,text:c})},createTextNode:function(b,c){return new a.htmlParser.TextNode({offset:b,text:c})}}),a.htmlParser.HtmlNode=a.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(b){if(a.Util.assign(this,b),null==this.offset)throw new Error("`offset` cfg required");if(null==this.text)throw new Error("`text` cfg required")},getType:a.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),a.htmlParser.CommentNode=a.Util.extend(a.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),a.htmlParser.ElementNode=a.Util.extend(a.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),a.htmlParser.EntityNode=a.Util.extend(a.htmlParser.HtmlNode,{getType:function(){return"entity"}}),a.htmlParser.TextNode=a.Util.extend(a.htmlParser.HtmlNode,{getType:function(){return"text"}}),a.match.Match=a.Util.extend(Object,{constructor:function(a,b){if(null==a)throw new Error("`matchedText` arg required");if(null==b)throw new Error("`offset` arg required");this.matchedText=a,this.offset=b},getType:a.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(a){this.offset=a},getOffset:function(){return this.offset},getAnchorHref:a.Util.abstractMethod,getAnchorText:a.Util.abstractMethod}),a.match.Email=a.Util.extend(a.match.Match,{constructor:function(b,c,d){if(a.match.Match.prototype.constructor.call(this,b,c),!d)throw new Error("`email` arg required");this.email=d},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),a.match.Hashtag=a.Util.extend(a.match.Match,{constructor:function(b,c,d,e){if(a.match.Match.prototype.constructor.call(this,b,c),!e)throw new Error("`hashtag` arg required");this.serviceName=d,this.hashtag=e},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var a=this.serviceName,b=this.hashtag;switch(a){case"twitter":return"https://twitter.com/hashtag/"+b;case"facebook":return"https://www.facebook.com/hashtag/"+b;case"instagram":return"https://instagram.com/explore/tags/"+b;default:throw new Error("Unknown service name to point hashtag to: ",a)}},getAnchorText:function(){return"#"+this.hashtag}}),a.match.Phone=a.Util.extend(a.match.Match,{constructor:function(b,c,d,e){if(a.match.Match.prototype.constructor.call(this,b,c),!d)throw new Error("`number` arg required");if(null==e)throw new Error("`plusSign` arg required");this.number=d,this.plusSign=e},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),a.match.Twitter=a.Util.extend(a.match.Match,{constructor:function(b,c,d){if(a.match.Match.prototype.constructor.call(this,b,c),!d)throw new Error("`twitterHandle` arg required");this.twitterHandle=d},getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),a.match.Url=a.Util.extend(a.match.Match,{constructor:function(b,c,d,e,f,g,h){if(a.match.Match.prototype.constructor.call(this,b,c),"scheme"!==e&&"www"!==e&&"tld"!==e)throw new Error('`urlMatchType` must be one of: "scheme", "www", or "tld"');if(!d)throw new Error("`url` arg required");if(null==f)throw new Error("`protocolUrlMatch` arg required");if(null==g)throw new Error("`protocolRelativeMatch` arg required");if(null==h)throw new Error("`stripPrefix` arg required");this.urlMatchType=e,this.url=d,this.protocolUrlMatch=f,this.protocolRelativeMatch=g,this.stripPrefix=h},urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var a=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(a=this.url="http://"+a,this.protocolPrepended=!0),a},getAnchorHref:function(){var a=this.getUrl();return a.replace(/&/g,"&")},getAnchorText:function(){var a=this.getMatchedText();return this.protocolRelativeMatch&&(a=this.stripProtocolRelativePrefix(a)),this.stripPrefix&&(a=this.stripUrlPrefix(a)),a=this.removeTrailingSlash(a)},stripUrlPrefix:function(a){return a.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(a){return a.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(a){return"/"===a.charAt(a.length-1)&&(a=a.slice(0,-1)),a}}),a.matcher.Matcher=a.Util.extend(Object,{constructor:function(b){a.Util.assign(this,b)},parseMatches:a.Util.abstractMethod}),a.matcher.Email=a.Util.extend(a.matcher.Matcher,{matcherRegex:function(){var b=a.RegexLib.alphaNumericCharsStr,c=new RegExp("["+b+"\\-;:&=+$.,]+@"),d=a.RegexLib.domainNameRegex,e=a.RegexLib.tldRegex;return new RegExp([c.source,d.source,"\\.",e.source].join(""),"gi")}(),parseMatches:function(b){for(var c,d=this.matcherRegex,e=[];null!==(c=d.exec(b));){var f=c[0];e.push(new a.match.Email(f,c.index,f))}return e}}),a.matcher.Hashtag=a.Util.extend(a.matcher.Matcher,{matcherRegex:new RegExp("#[_"+a.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+a.RegexLib.alphaNumericCharsStr+"]"),constructor:function(){a.matcher.Matcher.prototype.constructor.apply(this,arguments)},parseMatches:function(b){for(var c,d=this.matcherRegex,e=this.nonWordCharRegex,f=this.serviceName,g=[];null!==(c=d.exec(b));){var h=c.index,i=b.charAt(h-1);if(0===h||e.test(i)){var j=c[0],k=c[0].slice(1);g.push(new a.match.Hashtag(j,h,f,k))}}return g}}),a.matcher.Phone=a.Util.extend(a.matcher.Matcher,{matcherRegex:/(?:(\+)?\d{1,3}[-\040.])?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]\d{4}/g,parseMatches:function(b){for(var c,d=this.matcherRegex,e=[];null!==(c=d.exec(b));){var f=c[0],g=f.replace(/\D/g,""),h=!!c[1];e.push(new a.match.Phone(f,c.index,g,h))}return e}}),a.matcher.Twitter=a.Util.extend(a.matcher.Matcher,{matcherRegex:new RegExp("@[_"+a.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),nonWordCharRegex:new RegExp("[^"+a.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(b){for(var c,d=this.matcherRegex,e=this.nonWordCharRegex,f=[];null!==(c=d.exec(b));){var g=c.index,h=b.charAt(g-1);if(0===g||e.test(h)){var i=c[0],j=c[0].slice(1);f.push(new a.match.Twitter(i,g,j))}}return f}}),a.matcher.Url=a.Util.extend(a.matcher.Matcher,{matcherRegex:function(){var b=/(?:[A-Za-z][-.+A-Za-z0-9]*:(?![A-Za-z][-.+A-Za-z0-9]*:\/\/)(?!\d+\/?)(?:\/\/)?)/,c=/(?:www\.)/,d=a.RegexLib.domainNameRegex,e=a.RegexLib.tldRegex,f=a.RegexLib.alphaNumericCharsStr,g=new RegExp("["+f+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;]*["+f+"\\-+&@#/%=~_()|'$*\\[\\]]");return new RegExp(["(?:","(",b.source,d.source,")","|","(","(//)?",c.source,d.source,")","|","(","(//)?",d.source+"\\.",e.source,")",")","(?:"+g.source+")?"].join(""),"gi")}(),wordCharRegExp:/\w/,openParensRe:/\(/g,closeParensRe:/\)/g,constructor:function(){if(a.matcher.Matcher.prototype.constructor.apply(this,arguments),null==this.stripPrefix)throw new Error("`stripPrefix` cfg required")},parseMatches:function(b){for(var c,d=this.matcherRegex,e=this.stripPrefix,f=[];null!==(c=d.exec(b));){var g=c[0],h=c[1],i=c[2],j=c[3],k=c[5],l=c.index,m=j||k,n=b.charAt(l-1);if(a.matcher.UrlMatchValidator.isValid(g,h)&&!(l>0&&"@"===n||l>0&&m&&this.wordCharRegExp.test(n))){if(this.matchHasUnbalancedClosingParen(g))g=g.substr(0,g.length-1);else{var o=this.matchHasInvalidCharAfterTld(g,h);o>-1&&(g=g.substr(0,o))}var p=h?"scheme":i?"www":"tld",q=!!h;f.push(new a.match.Url(g,l,g,p,q,!!m,e))}}return f},matchHasUnbalancedClosingParen:function(a){var b=a.charAt(a.length-1);if(")"===b){var c=a.match(this.openParensRe),d=a.match(this.closeParensRe),e=c&&c.length||0,f=d&&d.length||0;if(f>e)return!0}return!1},matchHasInvalidCharAfterTld:function(a,b){if(!a)return-1;var c=0;b&&(c=a.indexOf(":"),a=a.slice(c));var d=/^((.?\/\/)?[A-Za-z0-9\u00C0-\u017F\.\-]*[A-Za-z0-9\u00C0-\u017F\-]\.[A-Za-z]+)/,e=d.exec(a);return null===e?-1:(c+=e[1].length,a=a.slice(e[1].length),/^[^.A-Za-z:\/?#]/.test(a)?c:-1)}}),a.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z\u00C0-\u017F]/,isValid:function(a,b){return b&&!this.isValidUriScheme(b)||this.urlMatchDoesNotHaveProtocolOrDot(a,b)||this.urlMatchDoesNotHaveAtLeastOneWordChar(a,b)?!1:!0},isValidUriScheme:function(a){var b=a.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==b&&"vbscript:"!==b},urlMatchDoesNotHaveProtocolOrDot:function(a,b){return!(!a||b&&this.hasFullProtocolRegex.test(b)||-1!==a.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(a,b){return a&&b?!this.hasWordCharAfterProtocolRegex.test(a):!1}},a.truncate.TruncateEnd=function(b,c,d){return a.Util.ellipsis(b,c,d)},a.truncate.TruncateMiddle=function(a,b,c){if(a.length<=b)return a;var d=b-c.length,e="";return d>0&&(e=a.substr(-1*Math.floor(d/2))),(a.substr(0,Math.ceil(d/2))+c+e).substr(0,b)},a.truncate.TruncateSmart=function(a,b,c){var d=function(a){var b={},c=a,d=c.match(/^([a-z]+):\/\//i);return d&&(b.scheme=d[1],c=c.substr(d[0].length)),d=c.match(/^(.*?)(?=(\?|#|\/|$))/i),d&&(b.host=d[1],c=c.substr(d[0].length)),d=c.match(/^\/(.*?)(?=(\?|#|$))/i),d&&(b.path=d[1],c=c.substr(d[0].length)),d=c.match(/^\?(.*?)(?=(#|$))/i),d&&(b.query=d[1],c=c.substr(d[0].length)),d=c.match(/^#(.*?)$/i),d&&(b.fragment=d[1]),b},e=function(a){var b="";return a.scheme&&a.host&&(b+=a.scheme+"://"),a.host&&(b+=a.host),a.path&&(b+="/"+a.path),a.query&&(b+="?"+a.query),a.fragment&&(b+="#"+a.fragment),b},f=function(a,b){var d=b/2,e=Math.ceil(d),f=-1*Math.floor(d),g="";return 0>f&&(g=a.substr(f)),a.substr(0,e)+c+g};if(a.length<=b)return a;var g=b-c.length,h=d(a);if(h.query){var i=h.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);i&&(h.query=h.query.substr(0,i[1].length),a=e(h))}if(a.length<=b)return a;if(h.host&&(h.host=h.host.replace(/^www\./,""),a=e(h)),a.length<=b)return a;var j="";if(h.host&&(j+=h.host),j.length>=g)return h.host.length==b?(h.host.substr(0,b-c.length)+c).substr(0,b):f(j,g).substr(0,b);var k="";if(h.path&&(k+="/"+h.path),h.query&&(k+="?"+h.query),k){if((j+k).length>=g){if((j+k).length==b)return(j+k).substr(0,b);var l=g-j.length;return(j+f(k,l)).substr(0,b)}j+=k}if(h.fragment){var m="#"+h.fragment;if((j+m).length>=g){if((j+m).length==b)return(j+m).substr(0,b);var n=g-j.length;return(j+f(m,n)).substr(0,b)}j+=m}if(h.scheme&&h.host){var o=h.scheme+"://";if((j+o).length0&&(p=j.substr(-1*Math.floor(g/2))),(j.substr(0,Math.ceil(g/2))+c+p).substr(0,b)},a}); \ No newline at end of file diff --git a/public/assets/js/libs/alertify.js b/public/assets/js/libs/alertify.js deleted file mode 100644 index d9d6a2b2..00000000 --- a/public/assets/js/libs/alertify.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";function t(){var t={version:"1.0.8",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,o="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(t){o(t.srcElement)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,document.body.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement("div");a.className=o||"default",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,"function"==typeof n&&a.addEventListener("click",n),i.appendChild(a),setTimeout(function(){a.className+=" show"},10),this.close(a,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",function(i){t.onOkay&&"function"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:"ok",inputValue:l.value,event:i}:{buttonClicked:"ok",event:i}),o(n)}),a&&a.addEventListener("click",function(i){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:"cancel",event:i}),o(n)})}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var i=n.querySelector(".ok"),a=n.querySelector(".cancel"),l=n.querySelector("input"),s=n.querySelector("label");l&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(l.value=this.promptValue));var r;return"function"==typeof Promise?r=new Promise(e):e(),document.body.appendChild(n),setTimeout(function(){n.classList.remove("hide"),l&&t.type&&"prompt"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){var e=parseInt(t||0,10);return this.delay=isNaN(e)?this.defultDelay:t,this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:2}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;-webkit-transform:translateZ(0);transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;-webkit-transform:translateZ(0);transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,"alert",o,n)||this},confirm:function(e,o,n){return t.dialog(e,"confirm",o,n)||this},prompt:function(e,o,n){return t.dialog(e,"prompt",o,n)||this},log:function(e,o){return t.log(e,"default",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,"success",o),this},error:function(e,o){return t.log(e,"error",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",o),setTimeout(o,e)}};if("undefined"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else"function"==typeof define&&define.amd?define(function(){return new t}):window.alertify=new t}(); \ No newline at end of file diff --git a/public/assets/css/prism.css b/public/assets/prism/prism.css similarity index 100% rename from public/assets/css/prism.css rename to public/assets/prism/prism.css diff --git a/public/assets/js/libs/prism.js b/public/assets/prism/prism.js similarity index 100% rename from public/assets/js/libs/prism.js rename to public/assets/prism/prism.js diff --git a/public/build/assets/bower/Autolinker.min-2cb3468034.js b/public/build/assets/bower/Autolinker.min-2cb3468034.js new file mode 100644 index 00000000..4e73c279 --- /dev/null +++ b/public/build/assets/bower/Autolinker.min-2cb3468034.js @@ -0,0 +1,10 @@ +/*! + * Autolinker.js + * 0.24.1 + * + * Copyright(c) 2016 Gregory Jacobs + * MIT License + * + * https://github.com/gregjacobs/Autolinker.js + */ +!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.Autolinker=e()}(this,function(){var t=function(t){t=t||{},this.urls=this.normalizeUrlsCfg(t.urls),this.email="boolean"==typeof t.email?t.email:!0,this.twitter="boolean"==typeof t.twitter?t.twitter:!0,this.phone="boolean"==typeof t.phone?t.phone:!0,this.hashtag=t.hashtag||!1,this.newWindow="boolean"==typeof t.newWindow?t.newWindow:!0,this.stripPrefix="boolean"==typeof t.stripPrefix?t.stripPrefix:!0;var e=this.hashtag;if(e!==!1&&"twitter"!==e&&"facebook"!==e&&"instagram"!==e)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||"",this.replaceFn=t.replaceFn||null,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return t.prototype={constructor:t,normalizeUrlsCfg:function(t){return null==t&&(t=!0),"boolean"==typeof t?{schemeMatches:t,wwwMatches:t,tldMatches:t}:{schemeMatches:"boolean"==typeof t.schemeMatches?t.schemeMatches:!0,wwwMatches:"boolean"==typeof t.wwwMatches?t.wwwMatches:!0,tldMatches:"boolean"==typeof t.tldMatches?t.tldMatches:!0}},normalizeTruncateCfg:function(e){return"number"==typeof e?{length:e,location:"end"}:t.Util.defaults(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(t){for(var e=this.getHtmlParser(),r=e.parse(t),n=0,s=[],i=0,a=r.length;a>i;i++){var o=r[i],h=o.getType();if("element"===h&&"a"===o.getTagName())o.isClosing()?n=Math.max(n-1,0):n++;else if("text"===h&&0===n){var c=this.parseText(o.getText(),o.getOffset());s.push.apply(s,c)}}return s=this.compactMatches(s),this.hashtag||(s=s.filter(function(t){return"hashtag"!==t.getType()})),this.email||(s=s.filter(function(t){return"email"!==t.getType()})),this.phone||(s=s.filter(function(t){return"phone"!==t.getType()})),this.twitter||(s=s.filter(function(t){return"twitter"!==t.getType()})),this.urls.schemeMatches||(s=s.filter(function(t){return"url"!==t.getType()||"scheme"!==t.getUrlMatchType()})),this.urls.wwwMatches||(s=s.filter(function(t){return"url"!==t.getType()||"www"!==t.getUrlMatchType()})),this.urls.tldMatches||(s=s.filter(function(t){return"url"!==t.getType()||"tld"!==t.getUrlMatchType()})),s},compactMatches:function(t){t.sort(function(t,e){return t.getOffset()-e.getOffset()});for(var e=0;es;s++){for(var a=r[s].parseMatches(t),o=0,h=a.length;h>o;o++)a[o].setOffset(e+a[o].getOffset());n.push.apply(n,a)}return n},link:function(t){if(!t)return"";for(var e=this.parse(t),r=[],n=0,s=0,i=e.length;i>s;s++){var a=e[s];r.push(t.substring(n,a.getOffset())),r.push(this.createMatchReturnVal(a)),n=a.getOffset()+a.getMatchedText().length}return r.push(t.substring(n)),r.join("")},createMatchReturnVal:function(e){var r;if(this.replaceFn&&(r=this.replaceFn.call(this,this,e)),"string"==typeof r)return r;if(r===!1)return e.getMatchedText();if(r instanceof t.HtmlTag)return r.toAnchorString();var n=this.getTagBuilder(),s=n.build(e);return s.toAnchorString()},getHtmlParser:function(){var e=this.htmlParser;return e||(e=this.htmlParser=new t.htmlParser.HtmlParser),e},getMatchers:function(){if(this.matchers)return this.matchers;var e=t.matcher,r=[new e.Hashtag({serviceName:this.hashtag}),new e.Email,new e.Phone,new e.Twitter,new e.Url({stripPrefix:this.stripPrefix})];return this.matchers=r},getTagBuilder:function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new t.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e}},t.link=function(e,r){var n=new t(r);return n.link(e)},t.match={},t.matcher={},t.htmlParser={},t.truncate={},t.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},defaults:function(t,e){for(var r in e)e.hasOwnProperty(r)&&void 0===t[r]&&(t[r]=e[r]);return t},extend:function(e,r){var n=e.prototype,s=function(){};s.prototype=n;var i;i=r.hasOwnProperty("constructor")?r.constructor:function(){n.constructor.apply(this,arguments)};var a=i.prototype=new s;return a.constructor=i,a.superclass=n,delete r.constructor,t.Util.assign(a,r),i},ellipsis:function(t,e,r){return t.length>e&&(r=null==r?"..":r,t=t.substring(0,e-r.length)+r),t},indexOf:function(t,e){if(Array.prototype.indexOf)return t.indexOf(e);for(var r=0,n=t.length;n>r;r++)if(t[r]===e)return r;return-1},splitAndCapture:function(t,e){for(var r,n=[],s=0;r=e.exec(t);)n.push(t.substring(s,r.index)),n.push(r[0]),s=r.index+r[0].length;return n.push(t.substring(s)),n},trim:function(t){return t.replace(this.trimRegex,"")}},t.HtmlTag=t.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(e){t.Util.assign(this,e),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(t){return this.tagName=t,this},getTagName:function(){return this.tagName||""},setAttr:function(t,e){var r=this.getAttrs();return r[t]=e,this},getAttr:function(t){return this.getAttrs()[t]},setAttrs:function(e){var r=this.getAttrs();return t.Util.assign(r,e),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(t){return this.setAttr("class",t)},addClass:function(e){for(var r,n=this.getClass(),s=this.whitespaceRegex,i=t.Util.indexOf,a=n?n.split(s):[],o=e.split(s);r=o.shift();)-1===i(a,r)&&a.push(r);return this.getAttrs()["class"]=a.join(" "),this},removeClass:function(e){for(var r,n=this.getClass(),s=this.whitespaceRegex,i=t.Util.indexOf,a=n?n.split(s):[],o=e.split(s);a.length&&(r=o.shift());){var h=i(a,r);-1!==h&&a.splice(h,1)}return this.getAttrs()["class"]=a.join(" "),this},getClass:function(){return this.getAttrs()["class"]||""},hasClass:function(t){return-1!==(" "+this.getClass()+" ").indexOf(" "+t+" ")},setInnerHtml:function(t){return this.innerHtml=t,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var t=this.getTagName(),e=this.buildAttrsStr();return e=e?" "+e:"",["<",t,e,">",this.getInnerHtml(),""].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var t=this.getAttrs(),e=[];for(var r in t)t.hasOwnProperty(r)&&e.push(r+'="'+t[r]+'"');return e.join(" ")}}),t.RegexLib=function(){var t="A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",e="0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",r=t+e,n=new RegExp("["+r+".\\-]*["+r+"\\-]"),s=/(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|press|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/;return{alphaNumericCharsStr:r,domainNameRegex:n,tldRegex:s}}(),t.AnchorTagBuilder=t.Util.extend(Object,{constructor:function(e){t.Util.assign(this,e)},build:function(e){return new t.HtmlTag({tagName:"a",attrs:this.createAttrs(e.getType(),e.getAnchorHref()),innerHtml:this.processAnchorText(e.getAnchorText())})},createAttrs:function(t,e){var r={href:e},n=this.createCssClass(t);return n&&(r["class"]=n),this.newWindow&&(r.target="_blank"),r},createCssClass:function(t){var e=this.className;return e?e+" "+e+"-"+t:""},processAnchorText:function(t){return t=this.doTruncate(t)},doTruncate:function(e){var r=this.truncate;if(!r)return e;var n=r.length,s=r.location;return"smart"===s?t.truncate.TruncateSmart(e,n,".."):"middle"===s?t.truncate.TruncateMiddle(e,n,".."):t.truncate.TruncateEnd(e,n,"..")}}),t.htmlParser.HtmlParser=t.Util.extend(Object,{htmlRegex:function(){var t=/!--([\s\S]+?)--/,e=/[0-9a-zA-Z][0-9a-zA-Z:]*/,r=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,n=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,s=r.source+"(?:\\s*=\\s*"+n.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",s,"|",n.source+")",")*",">",")","|","(?:","<(/)?","(?:",t.source,"|","(?:","("+e.source+")","(?:","\\s*",s,")*","\\s*/?",")",")",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/( | |<|<|>|>|"|"|')/gi,parse:function(t){for(var e,r,n=this.htmlRegex,s=0,i=[];null!==(e=n.exec(t));){var a=e[0],o=e[3],h=e[1]||e[4],c=!!e[2],u=e.index,l=t.substring(s,u);l&&(r=this.parseTextAndEntityNodes(s,l),i.push.apply(i,r)),o?i.push(this.createCommentNode(u,a,o)):i.push(this.createElementNode(u,a,h,c)),s=u+a.length}if(si;i+=2){var o=s[i],h=s[i+1];o&&(n.push(this.createTextNode(e,o)),e+=o.length),h&&(n.push(this.createEntityNode(e,h)),e+=h.length)}return n},createCommentNode:function(e,r,n){return new t.htmlParser.CommentNode({offset:e,text:r,comment:t.Util.trim(n)})},createElementNode:function(e,r,n,s){return new t.htmlParser.ElementNode({offset:e,text:r,tagName:n.toLowerCase(),closing:s})},createEntityNode:function(e,r){return new t.htmlParser.EntityNode({offset:e,text:r})},createTextNode:function(e,r){return new t.htmlParser.TextNode({offset:e,text:r})}}),t.htmlParser.HtmlNode=t.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(e){t.Util.assign(this,e)},getType:t.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),t.htmlParser.CommentNode=t.Util.extend(t.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),t.htmlParser.ElementNode=t.Util.extend(t.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),t.htmlParser.EntityNode=t.Util.extend(t.htmlParser.HtmlNode,{getType:function(){return"entity"}}),t.htmlParser.TextNode=t.Util.extend(t.htmlParser.HtmlNode,{getType:function(){return"text"}}),t.match.Match=t.Util.extend(Object,{constructor:function(t,e){this.matchedText=t,this.offset=e},getType:t.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(t){this.offset=t},getOffset:function(){return this.offset},getAnchorHref:t.Util.abstractMethod,getAnchorText:t.Util.abstractMethod}),t.match.Email=t.Util.extend(t.match.Match,{constructor:function(e,r,n){t.match.Match.prototype.constructor.call(this,e,r),this.email=n},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),t.match.Hashtag=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s){t.match.Match.prototype.constructor.call(this,e,r),this.serviceName=n,this.hashtag=s},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var t=this.serviceName,e=this.hashtag;switch(t){case"twitter":return"https://twitter.com/hashtag/"+e;case"facebook":return"https://www.facebook.com/hashtag/"+e;case"instagram":return"https://instagram.com/explore/tags/"+e;default:throw new Error("Unknown service name to point hashtag to: ",t)}},getAnchorText:function(){return"#"+this.hashtag}}),t.match.Phone=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s){t.match.Match.prototype.constructor.call(this,e,r),this.number=n,this.plusSign=s},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),t.match.Twitter=t.Util.extend(t.match.Match,{constructor:function(e,r,n){t.match.Match.prototype.constructor.call(this,e,r),this.twitterHandle=n},getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),t.match.Url=t.Util.extend(t.match.Match,{constructor:function(e,r,n,s,i,a,o){t.match.Match.prototype.constructor.call(this,e,r),this.urlMatchType=s,this.url=n,this.protocolUrlMatch=i,this.protocolRelativeMatch=a,this.stripPrefix=o},urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var t=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(t=this.url="http://"+t,this.protocolPrepended=!0),t},getAnchorHref:function(){var t=this.getUrl();return t.replace(/&/g,"&")},getAnchorText:function(){var t=this.getMatchedText();return this.protocolRelativeMatch&&(t=this.stripProtocolRelativePrefix(t)),this.stripPrefix&&(t=this.stripUrlPrefix(t)),t=this.removeTrailingSlash(t)},stripUrlPrefix:function(t){return t.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(t){return t.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(t){return"/"===t.charAt(t.length-1)&&(t=t.slice(0,-1)),t}}),t.matcher.Matcher=t.Util.extend(Object,{constructor:function(e){t.Util.assign(this,e)},parseMatches:t.Util.abstractMethod}),t.matcher.Email=t.Util.extend(t.matcher.Matcher,{matcherRegex:function(){var e=t.RegexLib.alphaNumericCharsStr,r=new RegExp("["+e+"\\-;:&=+$.,]+@"),n=t.RegexLib.domainNameRegex,s=t.RegexLib.tldRegex;return new RegExp([r.source,n.source,"\\.",s.source].join(""),"gi")}(),parseMatches:function(e){for(var r,n=this.matcherRegex,s=[];null!==(r=n.exec(e));){var i=r[0];s.push(new t.match.Email(i,r.index,i))}return s}}),t.matcher.Hashtag=t.Util.extend(t.matcher.Matcher,{matcherRegex:new RegExp("#[_"+t.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+t.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.nonWordCharRegex,i=this.serviceName,a=[];null!==(r=n.exec(e));){var o=r.index,h=e.charAt(o-1);if(0===o||s.test(h)){var c=r[0],u=r[0].slice(1);a.push(new t.match.Hashtag(c,o,i,u))}}return a}}),t.matcher.Phone=t.Util.extend(t.matcher.Matcher,{matcherRegex:/(?:(\+)?\d{1,3}[-\040.])?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]\d{4}/g,parseMatches:function(e){for(var r,n=this.matcherRegex,s=[];null!==(r=n.exec(e));){var i=r[0],a=i.replace(/\D/g,""),o=!!r[1];s.push(new t.match.Phone(i,r.index,a,o))}return s}}),t.matcher.Twitter=t.Util.extend(t.matcher.Matcher,{matcherRegex:new RegExp("@[_"+t.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),nonWordCharRegex:new RegExp("[^"+t.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.nonWordCharRegex,i=[];null!==(r=n.exec(e));){var a=r.index,o=e.charAt(a-1);if(0===a||s.test(o)){var h=r[0],c=r[0].slice(1);i.push(new t.match.Twitter(h,a,c))}}return i}}),t.matcher.Url=t.Util.extend(t.matcher.Matcher,{matcherRegex:function(){var e=/(?:[A-Za-z][-.+A-Za-z0-9]*:(?![A-Za-z][-.+A-Za-z0-9]*:\/\/)(?!\d+\/?)(?:\/\/)?)/,r=/(?:www\.)/,n=t.RegexLib.domainNameRegex,s=t.RegexLib.tldRegex,i=t.RegexLib.alphaNumericCharsStr,a=new RegExp("["+i+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;]*["+i+"\\-+&@#/%=~_()|'$*\\[\\]]");return new RegExp(["(?:","(",e.source,n.source,")","|","(","(//)?",r.source,n.source,")","|","(","(//)?",n.source+"\\.",s.source,")",")","(?:"+a.source+")?"].join(""),"gi")}(),wordCharRegExp:/\w/,openParensRe:/\(/g,closeParensRe:/\)/g,parseMatches:function(e){for(var r,n=this.matcherRegex,s=this.stripPrefix,i=[];null!==(r=n.exec(e));){var a=r[0],o=r[1],h=r[2],c=r[3],u=r[5],l=r.index,g=c||u,f=e.charAt(l-1);if(t.matcher.UrlMatchValidator.isValid(a,o)&&!(l>0&&"@"===f||l>0&&g&&this.wordCharRegExp.test(f))){if(this.matchHasUnbalancedClosingParen(a))a=a.substr(0,a.length-1);else{var m=this.matchHasInvalidCharAfterTld(a,o);m>-1&&(a=a.substr(0,m))}var p=o?"scheme":h?"www":"tld",d=!!o;i.push(new t.match.Url(a,l,a,p,d,!!g,s))}}return i},matchHasUnbalancedClosingParen:function(t){var e=t.charAt(t.length-1);if(")"===e){var r=t.match(this.openParensRe),n=t.match(this.closeParensRe),s=r&&r.length||0,i=n&&n.length||0;if(i>s)return!0}return!1},matchHasInvalidCharAfterTld:function(t,e){if(!t)return-1;var r=0;e&&(r=t.indexOf(":"),t=t.slice(r));var n=/^((.?\/\/)?[A-Za-z0-9\u00C0-\u017F\.\-]*[A-Za-z0-9\u00C0-\u017F\-]\.[A-Za-z]+)/,s=n.exec(t);return null===s?-1:(r+=s[1].length,t=t.slice(s[1].length),/^[^.A-Za-z:\/?#]/.test(t)?r:-1)}}),t.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z\u00C0-\u017F]/,isValid:function(t,e){return!(e&&!this.isValidUriScheme(e)||this.urlMatchDoesNotHaveProtocolOrDot(t,e)||this.urlMatchDoesNotHaveAtLeastOneWordChar(t,e))},isValidUriScheme:function(t){var e=t.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==e&&"vbscript:"!==e},urlMatchDoesNotHaveProtocolOrDot:function(t,e){return!(!t||e&&this.hasFullProtocolRegex.test(e)||-1!==t.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(t,e){return t&&e?!this.hasWordCharAfterProtocolRegex.test(t):!1}},t.truncate.TruncateEnd=function(e,r,n){return t.Util.ellipsis(e,r,n)},t.truncate.TruncateMiddle=function(t,e,r){if(t.length<=e)return t;var n=e-r.length,s="";return n>0&&(s=t.substr(-1*Math.floor(n/2))),(t.substr(0,Math.ceil(n/2))+r+s).substr(0,e)},t.truncate.TruncateSmart=function(t,e,r){var n=function(t){var e={},r=t,n=r.match(/^([a-z]+):\/\//i);return n&&(e.scheme=n[1],r=r.substr(n[0].length)),n=r.match(/^(.*?)(?=(\?|#|\/|$))/i),n&&(e.host=n[1],r=r.substr(n[0].length)),n=r.match(/^\/(.*?)(?=(\?|#|$))/i),n&&(e.path=n[1],r=r.substr(n[0].length)),n=r.match(/^\?(.*?)(?=(#|$))/i),n&&(e.query=n[1],r=r.substr(n[0].length)),n=r.match(/^#(.*?)$/i),n&&(e.fragment=n[1]),e},s=function(t){var e="";return t.scheme&&t.host&&(e+=t.scheme+"://"),t.host&&(e+=t.host),t.path&&(e+="/"+t.path),t.query&&(e+="?"+t.query),t.fragment&&(e+="#"+t.fragment),e},i=function(t,e){var n=e/2,s=Math.ceil(n),i=-1*Math.floor(n),a="";return 0>i&&(a=t.substr(i)),t.substr(0,s)+r+a};if(t.length<=e)return t;var a=e-r.length,o=n(t);if(o.query){var h=o.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);h&&(o.query=o.query.substr(0,h[1].length),t=s(o))}if(t.length<=e)return t;if(o.host&&(o.host=o.host.replace(/^www\./,""),t=s(o)),t.length<=e)return t;var c="";if(o.host&&(c+=o.host),c.length>=a)return o.host.length==e?(o.host.substr(0,e-r.length)+r).substr(0,e):i(c,a).substr(0,e);var u="";if(o.path&&(u+="/"+o.path),o.query&&(u+="?"+o.query),u){if((c+u).length>=a){if((c+u).length==e)return(c+u).substr(0,e);var l=a-c.length;return(c+i(u,l)).substr(0,e)}c+=u}if(o.fragment){var g="#"+o.fragment;if((c+g).length>=a){if((c+g).length==e)return(c+g).substr(0,e);var f=a-c.length;return(c+i(g,f)).substr(0,e)}c+=g}if(o.scheme&&o.host){var m=o.scheme+"://";if((c+m).length0&&(p=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+p).substr(0,e)},t}); \ No newline at end of file diff --git a/public/build/assets/bower/Autolinker.min-2cb3468034.js.br b/public/build/assets/bower/Autolinker.min-2cb3468034.js.br new file mode 100644 index 0000000000000000000000000000000000000000..226219ac8a6538bbdea5dcb3a0eb316ffc491a32 GIT binary patch literal 7317 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 literal 0 HcmV?d00001 diff --git a/public/build/assets/bower/Autolinker.min-2cb3468034.js.gz b/public/build/assets/bower/Autolinker.min-2cb3468034.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c5319459192077618668993b5ca4192fbfb792ee GIT binary patch literal 8188 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 literal 0 HcmV?d00001 diff --git a/public/build/assets/bower/alertify-1b3c6aa174.css b/public/build/assets/bower/alertify-1b3c6aa174.css new file mode 100644 index 00000000..a49a7e6a --- /dev/null +++ b/public/build/assets/bower/alertify-1b3c6aa174.css @@ -0,0 +1 @@ +.alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto} \ No newline at end of file diff --git a/public/build/assets/bower/alertify-1b3c6aa174.css.br b/public/build/assets/bower/alertify-1b3c6aa174.css.br new file mode 100644 index 0000000000000000000000000000000000000000..924e440520a1c8ca2c9c844d11635e3cacb28cb8 GIT binary patch literal 836 zcmV-K1H1eidJX^_2j!+SdnqxlIS)sWr$lu+%}@V%E07>jgm{Fx#seu9)_pzBkJnxR15quVpJUkTEY*<5weyspe^s`$ zXwMzC{!3~ljk(uGEQVk_vJxBXhv)C}bswYTA}RLcq5Gd3OBO3hDmJ%WdOud9UD&xu zH7^5oJ32(4-?V&w&dY;MI)-JGO%e6-(nKb^?oH!}i*u#D8HQxCXmyys(;;$QX7f0Vk=G(^je-gM5Z_@?E`-DH%-USC@@vaYJD z>*LN&8E3#d6&s~_ttHxu;Yavam-9sH(bgn%OtjDAXrD>kU*C@&X&c#+9*U!gA-Z-E z;w7c{Qf>YIxJ42S(TOh5DnZG{817?g9OgU9O?&;uA-N(gg6q4@D}jy}6-fvwPcYAi zcGI6r+-YN^hmp6U5=j!y;U)-r3-ueMl0_U;6$|f_GstHWU&liQubI<}I~|ERg@^)r zfAfD`Mv`zUYoKG0@#x9t zQ=N9HhVt<^93e>Yifr?J6b)ALrPn$aXmuhI(miEkVa}9D)r8wBWMG~m_doOGI>^MD_+r{v2JG-RoeTi4f?6_Wg$20+$!JZJ6l3h%ZX{jRQ4+=U(bf?t`T&@Ul|Y;Mbkf2dG2^;B=fyDH zB-z`YQk~uzLHxjwChRh4w9mz8|4>{*EVn-m!h(b~bSXe}!ID5^RP6*W^$0*__y~dt zz`+Q9Q_b)Y4pPgKK7lw|nIyCXef91<@-oyeW93dvR$Dp513}$S&}85_itqy z0k}JjH#KRxJ2{Fow0(?a3&)#&cY8;O$pXo;RgFg9>9xeRu=}vd;PLXjyW2{_WzPJ& O3P7RZHGuOv;VnU4p3NUfnn*Y8J zi7hQAd*&2)_v7*Sl8}Zf!|I=?5eNO-_g<2!V*HS$PqKUWw31z3ibkmHV_nyIAv&aw zq!O15zq1T$_~Li!P>^ppw(sOA0xnfig%qh+tFu&gzvfor*+Np$nzW7S3sU|#DADpN z^Of$RUvmknlu!Zx(`prOw()wkD5Kl5q*@13+fAHq*YOT4?LDbp3e5}?JgZqpt9%ke zE+@W=&r#mc+GIFa>~OSCBP9G5!WeOa!G%@kn57th&X3fxxbX{OyrNx}PIi+ct7tDI zDVg~Rl2R~kAffb3xzQOHoKDQ~B&Ltz(hpn2UhEcL_W@RNqX@soLYn4X^8Bpdm2JUF zRL~bj)wkqn4JnK5BaN1{zx%$ddg6VTRE$8P{SxxYZWM?7US>{29T+LY+IKD~x3aRy*Y8`}N!hLpy^=!wx(v zsojR$56`QK8z*E1UzEa+Uo7b=iZPIu4iMh&EYXUjIHc}YVTkXNlRkt|+U2*qag7bR zqV$(C>_=)VIkdvKYz>s3`Igw!qf&6AL=%OUZ?g6?2Oxa^VAQ~7ON_dy@A}_&C#yx- z>c8#ODA0@6G>lUu>RMBip+%#doI}lawfE9Dbbv+KcSQ?5npdbWCk%s%Y1xpU8RJ97i$;_`a&*$D zZfN)RwAs~zVii*2@|H485Hs|o=SLI2+f0=W!*@HF4yLZH_j#Z*{$_qTf-(d_mlRTS zQA7?bu0D65B5Ve3W$H$)lvI^OQ@@l~qhv)(p~#RO+r;y-RT@%w?eAlH?8(=nVbwct z4`!Dt)aJwLDV}n|8WLf0R3G!fY;IEHt0r!`+xQKK{@*IrFX-# zmP7w$483RPNS(B2YGt;bKjdc(_uPDzYRa(;0N?5dnEs7nlGyIC`rYkYGO$%~<85R7! nKNv1nm-7+5*=$%$Hs#(oZk+*|58h@LT*dzhw@q8ddkz2qB=h?x literal 0 HcmV?d00001 diff --git a/public/build/assets/bower/alertify-84061c87f5.js b/public/build/assets/bower/alertify-84061c87f5.js new file mode 100644 index 00000000..bbd91365 --- /dev/null +++ b/public/build/assets/bower/alertify-84061c87f5.js @@ -0,0 +1 @@ +!function(){"use strict";function t(){var t={parent:document.body,version:"1.0.11",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,o="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){o(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement("div");a.className=o||"default",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,"function"==typeof n&&a.addEventListener("click",n),i.appendChild(a),setTimeout(function(){a.className+=" show"},10),this.close(a,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",function(i){t.onOkay&&"function"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:"ok",inputValue:l.value,event:i}:{buttonClicked:"ok",event:i}),o(n)}),a&&a.addEventListener("click",function(i){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:"cancel",event:i}),o(n)}),l&&l.addEventListener("keyup",function(t){13===t.which&&i.click()})}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var i=n.querySelector(".ok"),a=n.querySelector(".cancel"),l=n.querySelector("input"),s=n.querySelector("label");l&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(l.value=this.promptValue));var r;return"function"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout(function(){n.classList.remove("hide"),l&&t.type&&"prompt"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,"alert",o,n)||this},confirm:function(e,o,n){return t.dialog(e,"confirm",o,n)||this},prompt:function(e,o,n){return t.dialog(e,"prompt",o,n)||this},log:function(e,o){return t.log(e,"default",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,"success",o),this},error:function(e,o){return t.log(e,"error",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",o),setTimeout(o,e)}};if("undefined"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else"function"==typeof define&&define.amd?define(function(){return new t}):window.alertify=new t}(); \ No newline at end of file diff --git a/public/build/assets/bower/alertify-84061c87f5.js.br b/public/build/assets/bower/alertify-84061c87f5.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f9e263066b2a74eef337727bdc2524fd52466244 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/public/build/assets/bower/alertify-84061c87f5.js.gz b/public/build/assets/bower/alertify-84061c87f5.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..df917bcff7bbeeed813f7be86fd206eea28234d1 GIT binary patch literal 3152 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 A$^ZZW literal 0 HcmV?d00001 diff --git a/public/build/assets/bower/fetch-d8a2646ccc.js.gz b/public/build/assets/bower/fetch-d8a2646ccc.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8074740d900503454d69a0b903f188c4a3cd8a4a GIT binary patch literal 2644 zcmV-a3aj-WiwFP!000021I=1zpPM)ue?Ol>TY*~-qNQX%c;q54m7*9$L zSxmk*;RbHGnn_#f#Zb>G zCCyH^_aaVXK`45>>KP9>TDz0RWNUh)J#*eWu8CO3J)H*mTBl(QNR2;z@+0|&EU#7K zxO{}?{e_a!&V=wj$^_OYMlk=EFaz#ZhTqWgs5KmCyO>%Ckfd4+e7dlEdu%^VHpmy9 zNJ&x19_=3-_E9;h=W8AS8;U>#{hZRYf+}sK z;Ssxv;35T_t{!Sp_DyXxOzN`1x=xs-f~R6vAwl2I2}{Nds^x&{ggHXGXfIEKIK4>6 zDG4)wd~|d7SBPnP&5S{En7QH;+0PTfMnU7P*A|$ppG&=DrX_oSLg}U+MFpdq0=kI- z3;+deqwHZ*lM{~?J6TC!l0ftAp^RG}NeRkZf-uY~It*u`Zb%GRDr$nVZYTpse~Pee z-*{ps`!mnxI^8*XzT15So~(RG_c;5wpyTxfZL?QXusj~Koq~wjh=*Ckhg?DTWtpXYn&TAj9_~N%bE?!H zsP(`xGsy;b`{?LV)A&lZUS=g{VUWjy4u}CUWaYAskYnE6W<+ZI1RfnKo$EL5-#EHK z4dd30Bl^01lB3q{5kWy1*t(y9Km-6pZeLZJ z6Ft)@z@t}S;RTm;4MxEiyeO#4tBqE3*AQ(!SG+(?-%v%yqcIbHA4v?Fvg=M4BuTdB zQ9b!f(oB94Ay%m5EFIWscuZ7h3lxlDHit=;a$CLDE@x0(?DtNpAt*jt{iFWUI2S$I z^}3rQQN%0R0Lnaxh3ow2SZ>*lH-eXDWigh(siq-W)tjI=cRU>k7vS}-UoPVXwV#6L zNf2^(@99r_Cllr{6A9Pi4c5ynPKoe19_fwSePx=*2Y0Szt2|42+WZpALas#H}ZhCWl$ zKoHYEYOhCd=6D+DE57MD2?FeldWFcCfW!=LkW_K!Y_Tdq!m5-p>Q;7;DV||5a;C*q5sN`%wxlp+vSSDvxZ0c5Y(+yMQ3&dyG!IL~7B&+OcE z+9yj>q(K^sJC+~u}cG>*?5gN+Z3?rO$DK?tikTy&~@-l&v#h<+~NmMo7ZZS z)}_i`Gu@&SY_+DG^$iY?#t5c`jJ63#X^vTICjI7F*Uf&FjdMr?#pb4F)Xk(mP-HqW z1a}u8ve4 z(&>rT=h2SR0Hx-;d&bsp4}$ch|1*4(EmWc%%b8@a3G+x`HEj%;7G{vd4~fkLf>c-&_5t%Or@Az ztzh~fqHERmOHESQ)*6hzJ-B~ch#ZI>prA1#R<`2%ZvRHo(KhM+p6FVyJ*bUpu)PZu z+|6D&%_z2bSQW9@uys(Rae7iRDTVC8W&>vHB~Ojn?|8$m?H?Q(0`5Kk+is)UuH-x0 zTlqphkF|Ags{#WVT*sj9ctgEFpyvdlH}VS|+|+ipT421%Og(e<>^VC3o}Hd&GuCYy z%C{};%yde90*#Md`0Y1SN&8Qm54l)p#j7^N7D1eF{K(nY4*KchYrR}U>D2-3nB4$6 zna#j#2>M_L0Q3PfZ0+*lBrNyJnklu4h+X4QO$Wa?4U;P34nzcxbu5PHdap&J-0KR93C;$M^ C<02XW literal 0 HcmV?d00001 diff --git a/public/build/assets/js/libs/marked.min-c2a88705e2.js b/public/build/assets/bower/marked.min-c2a88705e2.js similarity index 100% rename from public/build/assets/js/libs/marked.min-c2a88705e2.js rename to public/build/assets/bower/marked.min-c2a88705e2.js diff --git a/public/build/assets/js/libs/marked.min-c2a88705e2.js.br b/public/build/assets/bower/marked.min-c2a88705e2.js.br similarity index 100% rename from public/build/assets/js/libs/marked.min-c2a88705e2.js.br rename to public/build/assets/bower/marked.min-c2a88705e2.js.br diff --git a/public/build/assets/bower/marked.min-c2a88705e2.js.gz b/public/build/assets/bower/marked.min-c2a88705e2.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..23d8aff6665a262cf06a4e648da0d2bfe475e275 GIT binary patch literal 5514 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